The Wayback Machine - http://web.archive.org/web/20140105214126/http://msdn.microsoft.com:80/zh-tw/library/ms189794(v=sql.90).aspx
匯出 (0) 列印
全部展開
Expand Minimize
2 人當中有 1 人評分為有幫助- 為這個主題評分

DATEDIFF (Transact-SQL)

傳回跨越兩個指定日期的日期和時間界限數字。

主題連結圖示 Transact-SQL 語法慣例


DATEDIFF ( datepart , startdate , enddate )
datepart

這是指定要根據日期的哪個部分來計算差異的參數。下表列出 SQL Server 2005 所識別之日期部分和縮寫。這些日期部分和縮寫不能以使用者宣告變數方式提供。

日期部分 縮寫

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。

如果您只指定年份的最後兩位數,小於或等於 two-digit year cutoff 組態選項值最後兩位數的值,便屬於截止年份的相同世紀。大於這個選項值最後兩位數的值,便屬於截止年份的上一世紀。例如,如果 two-digit year cutoff 是 2049 (預設值),49 便會解譯為 2049,2050 會解譯為 1950。若要避免模稜兩可,請使用四位數年份。

如需有關如何指定時間值的詳細資訊,請參閱<時間格式>。如需有關如何指定日期的詳細資訊,請參閱<日期和時間 (Transact-SQL)>。

enddate

這是計算的結束日期。enddate 是傳回 datetime 或 smalldatetime 值或日期格式字元字串的運算式。

integer

從 enddate 中扣除 startdate。如果 startdate 比 enddate 晚,就會傳回負值。

如果結果超出整數值的範圍,DATEDIFF 會產生錯誤。如果是毫秒,最大數目是 24 天、20 小時、31 分鐘和 23.647 秒。如果是秒,最大數目是 68 年。

跨越界限 (如分、秒和毫秒) 來計數的方法,會使 DATEDIFF 所指定的結果跨越所有資料類型仍保持一致。結果是一個帶正負號的整數值,等於跨越第一個和第二個日期的 datepart 界限數字。例如,1 月 4 日星期日和 1 月 11 日星期日之間的星期數是 1。

下列範例會判斷目前日期和 AdventureWorks 資料庫中產品訂購日期相距的天數。

USE AdventureWorks;
GO
SELECT DATEDIFF(day, OrderDate, GETDATE()) AS NumberOfDays
FROM Sales.SalesOrderHeader;
GO
本文對您有任何幫助嗎?
(剩餘 1500 個字元)

社群新增項目

新增
顯示:
© 2014 Microsoft. 著作權所有,並保留一切權利。