TSQL показывают 1 апреля после следующего финансового года - PullRequest
1 голос
/ 03 октября 2019

У меня есть запрос ниже, где 1 июля необходимо вернуть до следующего финансового года, а затем обратно до 1 апреля после следующего финансового года. Запрос ниже продолжает возвращаться 01 июля 2019 года даже после следующего финансового года.

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 Ответ

1 голос
/ 03 октября 2019

Это потому, что в вашем 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...