[英]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)
减去一年的最佳方法是使用YEAR
或MONTH
:
DATEADD(MONTH, -12, CAST(GETDATE() as DATE))
DATEADD(YEAR, -1, CAST(GETDATE() as DATE))
并非所有的日子都有365天,因此这是不恰当的计算。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.