如何从今天的日期使用 3 年前找到一年的第一天

Pus*_*n29 0 sql t-sql sql-server getdate

我正在寻找如何使用今天的日期从 3 年前找到一年中的第一天(1 月 1 日)。我知道我可以Getdate()在这和负 3 年内使用,但在其余时间需要帮助。

WHERE datefield >= … 
Run Code Online (Sandbox Code Playgroud)

谢谢

Tim*_*sen 5

这是一种选择:

SELECT DATEADD(yy, DATEDIFF(yy, 0, DATEADD(yy, -3, GETDATE())), 0);
Run Code Online (Sandbox Code Playgroud)

演示


Tho*_*ner 5

您可以通过该YEAR功能获得年份。使用DATEFROMPARTS(year, month, day)构造日期。

WHERE datefield >= datefromparts(year(getdate()) - 3, 1, 1);
Run Code Online (Sandbox Code Playgroud)