日期计算每个月的最后一天
求3个月后的第一天和最后一天的日期
例如:本月是5月,求8月的第一天和最后一天的日期sql语句.
------解决方案-------------------- declare @dt datetime
set @dt = getdate()
select
convert(varchar(7),dateadd(m,3,@dt),120) + '-01 ' as 第一天,
cast(convert(varchar(7),dateadd(m,4,@dt),120) + '-01 ' as datetime)-1 as 第一天
------解决方案-------------------- select convert(varchar(8), getdate(), 120)+ '01 '
select dateadd(month, 1, convert(varchar(8), getdate(), 120)+ '01 ')-1
------解决方案--------------------declare @a datetime
set @a= '2007-05-09 '
select convert(char(7),dateadd(month,3,@a),120)+ '-01 ',
dateadd(day,-1,cast(convert(char(7),dateadd(month,4,@a),120)+ '-01 ' as datetime))
/*
---------- ------------------------------------------------------
2007-08-01 2007-08-31 00:00:00.000
(所影响的行数为 1 行)
*/
------解决方案--------------------下个月第一天的前一天
------解决方案----------------------第一天
select convert(varchar(8),dateadd(month,3,getdate()),120)+ '01 '
--最后一天
select dateadd(day,
-1,
convert(char(8),dateadd(month,4,getdate()),120)+ '01 '
)