【问题标题】:How to find first day of year using 3 years ago from today’s date如何从今天的日期开始使用 3 年前查找一年中的第一天
【发布时间】:2021-07-15 03:47:34
【问题描述】:

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

WHERE datefield >= … 

谢谢

【问题讨论】:

标签: sql sql-server tsql getdate


【解决方案1】:

您可以使用 YEAR 函数获得年份。使用DATEFROMPARTS(year, month, day) 构造日期。

WHERE datefield >= datefromparts(year(getdate()) - 3, 1, 1);

【讨论】:

  • charlieface 和 Gordon 当然是对的。我已经从我的解决方案中删除了不必要的选择。
【解决方案2】:

这是一种选择:

SELECT DATEADD(yy, DATEDIFF(yy, 0, DATEADD(yy, -3, GETDATE())), 0);

Demo

【讨论】:

  • 这应该可以完成这项工作。 DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) - 3, 0)。少一个DATEADD()
  • @Squirrel 好吧,看来我的回答刚刚遇到问题!
猜你喜欢
  • 1970-01-01
  • 2019-04-10
  • 2012-06-20
  • 1970-01-01
  • 1970-01-01
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
  • 2016-11-29
相关资源
最近更新 更多