簡體   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