TSQL显示下一个会计年度后的4月1日

时间:2019-10-03 09:42:51

标签: tsql

下面我有一个查询,需要在下一个会计年度之前返回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)

任何帮助表示赞赏

1 个答案:

答案 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)