My Enddate是2009-05-31(使用sql server)
@EndDate datetime
select startdate = dateadd(mm,-12,@EndDate)
如果我的EndDate = 2009-05-31 上面的代码将是我的 StartDate = 31-05-2008我的代码是否正确?
我希望我的发送日期能在4月份进行,所以
month(senddate) = month(dateadd(day,-1,dateadd(mm,-1,@EndDate))
我上面的代码是否正确?
答案 0 :(得分:0)
检查以下
declare @EndDate datetime
set @EndDate = '20090531'
select dateadd(mm,0,@EndDate) -- dummy
,dateadd(mm,-1,@EndDate) -- april returns 30/4
,dateadd(mm,-2,@EndDate) -- march returns 31/3
,dateadd(mm,-3,@EndDate) -- february returns 28/2
更简单
month(senddate) = month(dateadd(mm,-1,@EndDate))
例如
declare @EndDate datetime
set @EndDate = '20090531'
select month(dateadd(mm,-1,@EndDate)) -- returns 4 (april)
,month(dateadd(mm,-2,@EndDate)) -- returns 3 (march)
,month(dateadd(mm,-3,@EndDate)) -- returns 2 (february)
月初
declare @EndDate datetime
set @EndDate = '20090531'
select CONVERT(VARCHAR(6),(dateadd(mm,-1,@EndDate)),112)+'01'