我这里有个在sql server 中如何获取当月最后一天create procedure get_lastdate11 @thisday varchar(20) as declare @ii int declare @ddd varchar(20) declare @nextmonth varchar(2) declare @mm int declare @meyear varchar(4) if @thisday = '' set @thisday = convert(char(10),getdate(),120) else set @thisday = convert(char(10),rtrim(@thisday),120) set @mm = convert(varchar(2),month(@thisday)) if @mm = 12 begin set @nextmonth = '01' set @meyear = convert(varchar(4),year(@thisday) + 1) end else begin if len(@mm + 1) < 2 set @nextmonth = '0' + convert(char(1),@mm + 1) else set @nextmonth = convert(char(2),@mm + 1) set @meyear = convert(varchar(4),year(@thisday)) end set @ii = 0 set @ddd = @thisday while (@ddd <> rtrim(@meyear) + '-' +rtrim(@nextmonth) + '-01') begin set @ddd = convert(char(10),DATEADD(day, 1, @ddd),120) set @ii = @ii +1 end select lastdate = convert(char(10),DATEADD(day,@ii - 1, @thisday),120)
select case month(getdate()) when 2 then ( day(cast( (cast(year(getdate()) as char(4))+'-3-1') as datetime)-1) ) else substring( '312831303130313130313031',2*month(getdate())-1,2) end
Declare @D datetime,@Year int,@Month int,@Day int out set @Day=29 set @D=convert(datetime,convert(varchar,@Year)+'-'+convert(varchar,@Month)+'-'+convert(varchar,@Day) if @@error>0 begin set @Day=28 return @Day end set @Day=30 set @D=convert(datetime,convert(varchar,@Year)+'-'+convert(varchar,@Month)+'-'+convert(varchar,@Day) if @@error>0 begin set @Day=29 return @Day end set @Day=31 set @D=convert(datetime,convert(varchar,@Year)+'-'+convert(varchar,@Month)+'-'+convert(varchar,@Day) if @@error>0 begin set @Day=30 return @Day end return @Day
这些无聊得人,一个简单得问题被你们讨论成什么了,连SQL板块的人都跑来了。
if (DateTime.DaysInMonth(DateTime.Now.Year,DateTime.Now.Month) == DateTime.Now.Day) //今天是本月最后一天! else //今天不是.....
//定义最后日期为endDay switch(month) { case 2: if(Year % 4 ==0 && Year % 100 != 0 )|| Year % 400 ==0)) { endDay = 29; } else { endDay = 28; } break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: endDay = 31; break;
case 4: case 6: case 9: case 11: endDay = 30; break; }
Console.WriteLine(((dt.AddDays(1).Month-dt.Month)==1?"是":"不是")+"最后一天");
as
declare @ii int
declare @ddd varchar(20)
declare @nextmonth varchar(2)
declare @mm int
declare @meyear varchar(4)
if @thisday = ''
set @thisday = convert(char(10),getdate(),120)
else
set @thisday = convert(char(10),rtrim(@thisday),120) set @mm = convert(varchar(2),month(@thisday))
if @mm = 12
begin
set @nextmonth = '01'
set @meyear = convert(varchar(4),year(@thisday) + 1)
end
else
begin
if len(@mm + 1) < 2
set @nextmonth = '0' + convert(char(1),@mm + 1)
else
set @nextmonth = convert(char(2),@mm + 1)
set @meyear = convert(varchar(4),year(@thisday))
end
set @ii = 0
set @ddd = @thisday
while (@ddd <> rtrim(@meyear) + '-' +rtrim(@nextmonth) + '-01')
begin
set @ddd = convert(char(10),DATEADD(day, 1, @ddd),120)
set @ii = @ii +1
end
select lastdate = convert(char(10),DATEADD(day,@ii - 1, @thisday),120)
day(cast( (cast(year(getdate()) as char(4))+'-3-1') as datetime)-1)
)
else substring( '312831303130313130313031',2*month(getdate())-1,2)
end
DateTime dt=DateTime.Parse("2005-8-30");
Console.WriteLine((dt.AddDays(1).Month==dt.AddMonths(1).Month?"是":"不是")+"最后一天");
If DateAdd(DateInterval.Day, 1, CurrentDate).Day = 1 Then
'CurrentDate是该月最后一天
End If
test.AddDays(1);
DateAdd(DateInterval.Day, -CurrentDate.Day, DateAdd(DateInterval.Month, 1, CurrentDate))
If CDate(str).AddDays(1).Day = 1 Then
Me.TextBox1.Text = "是"
Else
Me.TextBox1.Text = "不是"
End If
如果是取当前日期所在月的最后一天:
DateAdd(DateInterval.Day, -1, CDate(DateAdd(DateInterval.Month, 1, CurrentDate).ToString("yyyy-MM-01")))
DateTime dt1=dt.AddDays(1);Console.WriteLine(dt.Month==dt1.Month?"不是":"是")+"最后一天");
如上,将当天日期加上1天,再判断加1天之后的月份与原天数的月份相比,如果不同,那就是最后一天。
set @Day=29
set @D=convert(datetime,convert(varchar,@Year)+'-'+convert(varchar,@Month)+'-'+convert(varchar,@Day)
if @@error>0
begin
set @Day=28
return @Day
end
set @Day=30
set @D=convert(datetime,convert(varchar,@Year)+'-'+convert(varchar,@Month)+'-'+convert(varchar,@Day)
if @@error>0
begin
set @Day=29
return @Day
end
set @Day=31
set @D=convert(datetime,convert(varchar,@Year)+'-'+convert(varchar,@Month)+'-'+convert(varchar,@Day)
if @@error>0
begin
set @Day=30
return @Day
end
return @Day
//今天是本月最后一天!
else
//今天不是.....
{
case 2:
if(Year % 4 ==0 && Year % 100 != 0 )|| Year % 400 ==0))
{
endDay = 29;
}
else
{
endDay = 28;
}
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
endDay = 31;
break;
case 4:
case 6:
case 9:
case 11:
endDay = 30;
break;
}