timediff 函数

适用于:check marked yesDatabricks SQL check marked yes Databricks Runtime 14.0 及更高版本

返回两个以 unit 为单位的时间戳之间的差异。 此函数是 timestampdiff 函数的同义函数。

语法

timediff(unit, start, end)

unit
 { MICROSECOND |
   MILLISECOND |
   SECOND |
   MINUTE |
   HOUR |
   DAY |
   WEEK |
   MONTH |
   QUARTER |
   YEAR }

参数

  • unit:度量单位。
  • start:一个以 TIMESTAMP 开头的表达式。
  • end:一个以 TIMESTAMP 结尾的表达式。

返回

一个 BIGINT

如果 start 大于 end,则结果为负。

该函数根据 UTC 统计已消逝的完整单位数,一个 DAY 为 86400 秒。

如果日历月份递增并且日历日期和时间等于或大于开始值时,则认为一个月已消逝。 从该时间开始消逝的周数、季数和年数。

示例

-- One second shy of a month elapsed
> SELECT timediff(MONTH, TIMESTAMP'2021-02-28 12:00:00', TIMESTAMP'2021-03-28 11:59:59');
 0

-- One month has passed even though its' not end of the month yet because day and time line up.
> SELECT timediff(MONTH, TIMESTAMP'2021-02-28 12:00:00', TIMESTAMP'2021-03-28 12:00:00');
 1

-- Start is greater than the end
> SELECT timediff(YEAR, DATE'2021-01-01', DATE'1900-03-28');
 -120