下面我有一个查询,需要在下一个会计年度之前返回7月1日,然后在下一个会计年度之后返回4月1日。即使在下一个会计年度之后,下面的查询仍将返回2019年7月1日。
select (case when getdate() < '2020-03-31' then '2019-07-01'
when GETDATE() > '2020-03-31' then
dateadd(month, 3, dateadd(year, datepart(year, dateadd(month, -3, '2021-05-26')) - 1900, 0)) end)
任何帮助表示赞赏
答案 0 :(得分:1)
这是因为在您的when
条件下,您使用的getDate()
总是返回今天的日期。
尝试将其作为参数传递
Declare @Date date
SET @Date = '2021-05-26'
select (case when @Date < '2020-03-31' then '2019-07-01'
when @Date > '2020-03-31' then
dateadd(month, 3, dateadd(year, datepart(year, dateadd(month, -3, @Date)) - 1900, 0)) end)