【发布时间】:2017-07-13 17:20:23
【问题描述】:
如果日期不在今天之前,我会尝试在日期上添加一年。所以在下面的声明中我想显示 4/20/2018
declare @StartDate datetime
set @StartDate='4/20/2015'
select case when dateadd(year,1,@StartDate)> GETDATE() then
dateadd(year,1,@StartDate) else dATEADD(year,1,(datepart(year,GETDATE()))) end
【问题讨论】:
-
在案例的第一部分,您返回的日期为 1 年 + @start date = 4/20/2016。在其他部分,您返回一个整数。或者它出错了……你为什么要分开这一年?然后加1年呢?由于年份不是有效日期,这甚至可以编译吗?您不能在列输出上混合数据类型!
-
我知道它出错并试图弄清楚 else 语句将如何显示 2018 年 4 月 20 日,因为 @StartDate +1 小于当前日期。