DATEDIFF (SSIS)
傳回跨越兩個指定日期的日期和時間界線數目。 The datepart 參數會識別要比較的日期和時間界線。
語法
DATEDIFF(datepart, startdate, endate)
引數
datepart
是指定日期中哪一個部份要進行比較和傳回值的參數。
startdate
是間隔的開始日期。
endate
是間隔的結束日期。
結果類型
DT_I4
備註
下表列出運算式評估工具所辨識的日期部份與縮寫。
DATEPART | 縮寫 |
---|---|
Year |
yy, yyyy |
Quarter |
qq, q |
Month |
mm, m |
Dayofyear |
dy, y |
Day |
dd, d |
Week |
wk, ww |
Weekday |
dw, w |
Hour |
Hh |
Minute |
mi, n |
Second |
ss, s |
Millisecond |
Ms |
如果任何引數為 Null,則 DATEDIFF 會傳回 Null 結果。
日期常值必須明確轉換為日期資料類型之一。
如果日期無效、日期或時間單位不是字串、開始日期不是日期,或結束日期不是日期,則會發生錯誤。
如果結束日期早於開始日期,則函數會傳回負數。如果開始和結束日期相等或落在相同的間隔內,則函數會傳回零。
範例
此範例會計算兩個日期常值之間的天數。如果日期格式為 "mm/dd/yyyy",則函數會傳回 7。
DATEDIFF("dd", (DT_DBTIMESTAMP)"8/1/2003", (DT_DBTIMESTAMP)"8/8/2003")
此範例會傳回日期常值和目前日期之間的月數。
DATEDIFF("mm", (DT_DBTIMESTAMP)"8/1/2003",GETDATE())
此範例會傳回 ModifiedDate 資料行中的日期與 YearEndDate 變數之間的星期數。如果 YearEndDate 的資料類型為 date,則不需要明確轉換。
DATEDIFF("Week", ModifiedDate,@YearEndDate)
請參閱
參考
DATEADD (SSIS)
DATEPART (SSIS)
DAY (SSIS)
MONTH (SSIS)
YEAR (SSIS)