日期是01/09 /?

时间:2020-07-20 14:24:36

标签: sql tsql

我现在刚在where子句中

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

此日期是9月1日的最后一次出现。是2019年,但今年01/09会是2020年

我的问题是我可以自动执行where子句,这样我不必每年手动更改它吗?

谢谢 克里斯

2 个答案:

答案 0 :(得分:0)

您可以根据以下逻辑使用最近的九月:

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日,它“神奇地”(很好地,巧妙地)切换到当前年份。

答案 1 :(得分:0)

DECLARE @Date  NVARCHAR(30)

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

.. WHERE StartDate<= @Date