其中日期是01/09/?

xqnpmsa8  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(435)

在where子句中

WHERE StartDate <= '09/01/2019 00:0:0'
AND EndDate >= '09/01/2019 00:0:0'

这个日期是9月1日的最后一次。也就是2019年,但是到了今年的01/09年,就是2020年
我的问题是,我可以自动化这个where子句,这样我就不必每年手动更改它了吗?
谢谢克里斯

bgibtngc

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日,它“神奇地”(嗯,艺术地)切换到当年。

2izufjch

2izufjch2#

DECLARE @Date  NVARCHAR(30)

set @Date = CONCAT('01/09/', DATEPART(YEAR,getdate()))

.. WHERE StartDate<= @Date

相关问题