该 DATETIMEDIFF 函数返回两个日期和时间值之间的指定日期和时间部分的有符号整数。
Syntax
DATETIMEDIFF(<date_time_part>, <start_date_time>, <end_date_time>)
Arguments
| Description | |
|---|---|
date_time_part |
表示 ISO 8601 日期格式规范的一部分的字符串。 此部分用于指示要比较的日期的哪个方面。 |
start_date_time |
ISO 8601 格式 YYYY-MM-DDThh:mm:ss.fffffffZ的协调世界时(UTC)日期和时间字符串。 |
end_date_time |
ISO 8601 格式 YYYY-MM-DDThh:mm:ss.fffffffZ的协调世界时(UTC)日期和时间字符串。 |
返回类型
返回一个数值,该值为带符号整数。
例子
本部分包含有关如何使用此查询语言构造的示例。
日期和时间差异
在此示例中,该 DATETIMEDIFF 函数用于计算两个日期(以年、月、天、小时和秒为单位)之间的差异。
SELECT VALUE {
diffPastYears: DATETIMEDIFF("yyyy", "2019-02-04T16:00:00.0000000", "2018-03-05T05:00:00.0000000"),
diffPastMonths: DATETIMEDIFF("mm", "2019-02-04T16:00:00.0000000", "2018-03-05T05:00:00.0000000"),
diffPastDays: DATETIMEDIFF("dd", "2019-02-04T16:00:00.0000000", "2018-03-05T05:00:00.0000000"),
diffPastHours: DATETIMEDIFF("hh", "2019-02-04T16:00:00.0000000", "2018-03-05T05:00:00.0000000"),
diffPastSeconds: DATETIMEDIFF("ss", "2019-02-04T16:00:00.0000000", "2018-03-05T05:00:00.0000000"),
diffFutureYears: DATETIMEDIFF("yyyy", "2018-03-05T05:00:00.0000000", "2019-02-04T16:00:00.0000000"),
diffFutureMonths: DATETIMEDIFF("mm", "2018-03-05T05:00:00.0000000", "2019-02-04T16:00:00.0000000"),
diffFutureDays: DATETIMEDIFF("dd", "2018-03-05T05:00:00.0000000", "2019-02-04T16:00:00.0000000"),
diffFutureHours: DATETIMEDIFF("hh", "2018-03-05T05:00:00.0000000", "2019-02-04T16:00:00.0000000"),
diffFutureSeconds: DATETIMEDIFF("ss", "2018-03-05T05:00:00.0000000", "2019-02-04T16:00:00.0000000")
}
[
{
"diffPastYears": -1,
"diffPastMonths": -11,
"diffPastDays": -336,
"diffPastHours": -8075,
"diffPastSeconds": -29070000,
"diffFutureYears": 1,
"diffFutureMonths": 11,
"diffFutureDays": 336,
"diffFutureHours": 8075,
"diffFutureSeconds": 29070000
}
]
注解
-
ISO 8601 日期格式指定要用于此函数的有效日期和时间部分: | |格式 | |--- |--- | |Year |
year、yyyy、yy| |Month |month、mm、m| |Day |day、、ddd| |Hour |hour、hh| |Minute |minute、mi、n| |第二 |second个,ss,s| |毫秒 |millisecond,ms| |Microsecond |microsecond、mcs| |Nanosecond |nanosecond、ns| - 此函数出于以下原因返回
undefined: - 指定的日期和时间部分无效。
- start 或 end 参数中的日期和时间不是有效的 ISO 8601 日期和时间字符串。
- 该函数始终返回有符号整数值。 该函数返回指定日期和时间部分交叉的边界数的度量值,而不是时间间隔的度量值。