我现在刚在where子句中
WHERE StartDate <= '09/01/2019 00:0:0'
AND EndDate >= '09/01/2019 00:0:0'
此日期是9月1日的最后一次出现。是2019年,但今年01/09会是2020年
我的问题是我可以自动执行where子句,这样我不必每年手动更改它吗?
谢谢 克里斯
答案 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