傳回在兩個指定日期之間跨越的日期和時間界限數目。 datepart 參數會識別要比較的日期和時間界限。
語法
DATEDIFF(datepart, startdate, endate)
論點
datepart
這是參數,指定要比較和傳回值的日期部分。
startdate
這是間隔的開始日期。
endate
這是間隔的結束日期。
結果類型
DT_I4
備註
下表列出表達式評估工具所辨識的 dateparts 和縮寫。
| 日期部分 | 縮寫 |
|---|---|
| 年 | yy、yyyy |
| 季度 | qq、q |
| 月 | mm、m |
| 年中的日數 | dy,y |
| 日 | dd、d |
| 星期 | wk、 ww |
| 工作日 | dw、w |
| 小時 | Hh |
| 分鐘 | mi, n |
| 第二秒 | ss、s |
| 毫秒 | 女士 |
如果有任何自變數為 Null,DATEDIFF 會傳回 Null 結果。
日期字面值必須被強制轉型為其中一種日期資料類型。 如需詳細資訊,請參閱 Integration Services 資料類型。
如果日期無效、日期或時間單位不是字串、開始日期不是日期,或結束日期不是日期,就會發生錯誤。
如果結束日期早於開始日期,函式會傳回負數。 如果開始和結束日期相等或落在相同的間隔內,函式會傳回零。
SSIS 運算式範例
此範例會計算兩個日期常值之間的天數。 如果日期為 「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 運算式)
函數 (SSIS 運算式)