在where子句中
WHERE StartDate <= '09/01/2019 00:0:0' AND EndDate >= '09/01/2019 00:0:0'
这个日期是9月1日的最后一次。也就是2019年,但是到了今年的01/09年,就是2020年我的问题是,我可以自动化这个where子句,这样我就不必每年手动更改它了吗?谢谢克里斯
bgibtngc1#
您可以通过以下逻辑使用最近的九月:
where startdate <= datefromparts(year(dateadd(month, -9, getdate())), 9, 1) and enddate >= datefromparts(year(dateadd(month, -9, getdate())), 9, 1)
这将从当前日期减去9个月,并使用该日期的年份。所以8月31日,这一年是上一年。在9月1日,它“神奇地”(嗯,艺术地)切换到当年。
2izufjch2#
DECLARE @Date NVARCHAR(30) set @Date = CONCAT('01/09/', DATEPART(YEAR,getdate())) .. WHERE StartDate<= @Date
2条答案
按热度按时间bgibtngc1#
您可以通过以下逻辑使用最近的九月:
这将从当前日期减去9个月,并使用该日期的年份。所以8月31日,这一年是上一年。在9月1日,它“神奇地”(嗯,艺术地)切换到当年。
2izufjch2#