日期:2014-05-18  浏览次数:20536 次

日期计算每个月的最后一天
求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 '
)