DATETIME_DIFF

用法示例

DATETIME_DIFF(Order Date, Ship Date, DAY)

语法

DATETIME_DIFF( date_expression, date_expression, part )

参数

  • date_expression - 日期或日期和时间字段或表达式。如果第一个日期表达式早于第二个日期表达式,则结果为零或负数。
  • part - 要返回的时间部分。DATETIME_DIFF 支持以下部分:
    • MICROSECOND:适用于日期和时间字段或表达式。
    • MILLISECOND:适用于日期和时间字段或表达式。
    • SECOND:适用于日期和时间字段或表达式。
    • MINUTE:适用于日期和时间字段或表达式。
    • HOUR:适用于日期和时间字段或表达式。
    • DAY
    • WEEK:此日期部分从星期日开始。
    • ISOWEEK:使用 ISO 8601 格式的周边界值。ISO 格式的周从星期一开始。
    • MONTH
    • QUARTER
    • YEAR
    • ISOYEAR:使用 ISO 8601 格式的周编号年份边界值。ISO 格式年份的边界值是其星期四属于相应公历年的第一周的星期一。

返回数据类型

数字(整数)

示例

以下第二个和第三个示例显示了对相隔 24 小时的两个日期值执行 DATETIME_DIFF 运算的结果。日期部分为 WEEKDATETIME_DIFF 会返回 1,因为 DATETIME_DIFF 会计算此日期值范围内日期部分边界值的数量。每个 WEEK 都从星期日开始算起,因此在 2017-10-14 00:00:00 星期六与 2017-10-15 00:00:00 星期日之间有一个部分的边界值。

示例公式 输出
DATETIME_DIFF( DATETIME "2010-07-07 10:20:00", DATETIME "2008-12-25 15:30:00", DAY ) 559
DATETIME_DIFF( DATETIME "2017-10-15 00:00:00", DATETIME "2017-10-14 00:00:00", DAY )

1

DATETIME_DIFF( DATETIME "2017-10-15 00:00:00", DATETIME "2017-10-14 00:00:00", WEEK ) 1

以下示例显示了不同年份中两个日期的 DATETIME_DIFF 结果。对日期部分 YEAR 执行 DATETIME_DIFF 运算会返回 3,因为它计算两个日期值之间的公历年边界值数量。对日期部分 ISOYEAR 执行 DATETIME_DIFF 运算会返回 2,因为第二个日期值属于 ISO 格式的年份 2015。公历年 2015 年的第一个星期四是 2015-01-01,因此 ISO 格式年份 2015 年开始于上一个星期一,也就是 2014-12-29。

示例公式 输出
DATETIME_DIFF(DATETIME '2017-12-30 00:00:00', DATETIME '2014-12-30 00:00:00', YEAR) 3
DATETIME_DIFF(DATETIME '2017-12-30 00:00:00', DATETIME '2014-12-30 00:00:00', ISOYEAR)

2

以下示例显示了连续两天的 DATETIME_DIFF 结果。第一个日期是星期一,第二个日期是星期日。对日期部分 ISOWEEK 执行 DATETIME_DIFF 运算也会返回 1,因为 ISO 格式的周从星期一开始。

示例公式 输出
DATETIME_DIFF(DATE '2017-12-18', DATE '2017-12-17', WEEK) 0
DATETIME_DIFF(DATE '2017-12-18', DATE'2017-12-17', ISOWEEK) 1

备注

此函数不适用于兼容模式日期类型。