返回跨兩個指定日期的日期和時間邊界數(shù)。
DATEDIFF ( datepart , startdate , enddate )
datepart
是規(guī)定了應(yīng)在日期的哪一部分計算差額的參數(shù)。下表列出了 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
是計算的開始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表達式。
因為 smalldatetime 只精確到分鐘,所以當用 smalldatetime 值時,秒和毫秒總是 0。
如果您只指定年份的最后兩位數(shù)字,則小于或等于"兩位數(shù)年份截止期"配置選項的值的最后兩位數(shù)字的數(shù)字所在世紀與截止年所在世紀相同。大于該選項的值的最后兩位數(shù)字的數(shù)字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2049(默認),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數(shù)的年份。
有關(guān)時間值指定的更多信息,請參見時間格式。有關(guān)日期指定的更多信息,請參見 datetime 和 smalldatetime。
enddate
是計算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表達式。
integer
startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負值。
當結(jié)果超出整數(shù)值范圍,DATEDIFF 產(chǎn)生錯誤。對于毫秒,最大數(shù)是 24 天 20 小時 31 分鐘零 23.647 秒。對于秒,最大數(shù)是 68 年。
計算跨分鐘、秒和毫秒這些邊界的方法,使得 DATEDIFF 給出的結(jié)果在全部數(shù)據(jù)類型中是一致的。結(jié)果是帶正負號的整數(shù)值,其等于跨第一個和第二個日期間的 datepart 邊界數(shù)。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數(shù)是 1。
此示例確定在 pubs 數(shù)據(jù)庫中標題發(fā)布日期和當前日期間的天數(shù)。
USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO
相關(guān)文章