回傳橫跨兩個指定日期之間的日期與時間邊界數目。
DATEDIFF ( datepart , startdate , enddate )
datepart:指定要計算差異的日期部分。下表列出 Microsoft SQL Server 辨識的日期部分與縮寫:
| 日期部分 | 縮寫 |
|---|---|
| year | yy, yyyy |
| quarter | qq, q |
| month | mm, m |
| dayofyear | dy, y |
| day | dd, d |
| week | wk, ww |
| hour | hh |
| minute | mi, n |
| second | ss, s |
| millisecond | ms |
startdate:計算的開始日期。為回傳 datetime 或 smalldatetime 值或日期格式字串的運算式。
enddate:計算的結束日期。同樣為回傳日期時間值的運算式。
注意: 因 smalldatetime 精確度僅到分鐘,使用此類型時秒與毫秒會被捨去。
-- 計算兩日期相差天數
SELECT DATEDIFF(day, '2024-01-01', '2024-01-15') AS DayDiff; -- 回傳 14
-- 計算年齡(以年為單位)
SELECT DATEDIFF(year, '1990-05-20', GETDATE()) AS Age;
回傳型別: int