sql server計算兩個日期之間差值的datediff()函數


SQL Server中提供了一個DATEDIFF()函數用來計算兩個日期之間的差值。

DATEDIFF(datepart, startdate, enddate)

其中,datepart參數表示要計算差值的部分,startdate參數表示要計算差值的開始日期(被減數),enddate參數表示要計算差值的結束日期(減數)。

SELECT DATEDIFF(day, '2019-05-20', '2019-05-22'); -- 2

datepart參數提供了多個候選值,方便計算各個日期部分的差值。

datepart 縮寫 全稱
yy, yyyy year
季度 qq, q quarter
mm, m month
年中的日 dy, y dayofyear
dd, d day
wk, ww week
星期 dw, w weekday
小時 hh hour
分鍾 mi, n minute
ss, s second
毫秒 ms millisecond
微妙 mcs microsecond
納秒 ns nanosecond

這里的精度從上往下依次提高,精度越大,時間范圍應該設置的越小,否則會報【[S0000][535] datediff 函數導致溢出。用於分隔兩個日期/時間實例的日期部分的數字太大。請嘗試使用日期部分精度較低的 datediff。】這樣的錯誤。

SELECT DATEDIFF(yy, '2019-05-20', '2020-05-22'); -- 1

另外,如果要計算差值的開始日期和要計算差值的結束日期中,指定的計算部分為開始日期大於結束日期,則返回結果是負數。

SELECT DATEDIFF(yy, '2023-05-20', '2020-05-22'); -- -3

 

"因為經歷過了,所以才波瀾不驚。"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM