DATEDIFF (SSIS)

返回两个指定日期之间所跨的日期和时间边界的数目。datepart 参数标识要比较的日期和时间边界。

语法

DATEDIFF(datepart, startdate, endate)

参数

datepart

此参数指定对日期的哪一部分进行比较并为其返回值。

startdate

此参数表示间隔的开始日期。

endate

此参数表示间隔的结束日期。

结果类型

DT_I4

备注

下表列出了表达式计算器可以识别的日期部分和缩写形式。

日期部分 缩写形式

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

如果任何参数为空,则 DATEDIFF 返回的结果为空。

日期文字必须显式转换为日期数据类型之一。

如果日期无效、日期或时间单元不是字符串、开始日期不是日期或结束日期不是日期,都将发生错误。

如果结束日期早于开始日期,则此函数返回负数。如果开始日期等于结束日期或两者在同一间隔内,则此函数返回零。

示例

此示例计算两个日期文字之间的天数。如果日期是“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)

帮助和信息

获取 SQL Server 2005 帮助