繁体   English   中英

SQL从去年的同一天开始

[英]SQL get the same day from last year

我想从日期时间获取当前日期。 我知道最好的方法是

DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)

但是,如果我想从去年开始得到同样的一天,我最好还是做

解决方案1

DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), -365)

或解决方案2

DATEADD(YEAR, -1, DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0))

解决方案1是否在任何时候都不起作用?

解决方案2自动为leap年减去366天。

解决方案1没有; 如果涉及a年,您可能会得到第二天。

从SQL Server 2008开始,从datetime获取当前日期的最佳方法是:

CAST(GETDATE() as DATE)

减去一年的最佳方法是使用YEARMONTH

DATEADD(MONTH, -12, CAST(GETDATE() as DATE))
DATEADD(YEAR, -1, CAST(GETDATE() as DATE))

并非所有的日子都有365天,因此这是不恰当的计算。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM