[英]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.