TIMESTAMPDIFF

以指定的间隔返回两个 TIMESTAMP 或 TIMESTAMPTZ 值之间的时间跨度。 TIMESTAMPDIFF 在其计算中不包括开始日期。

行为类型

  • 如果开始日期和结束日期为 TIMESTAMP,则是 不可变

  • 如果开始日期和结束日期为 TIMESTAMPTZ,则是 稳定

语法

TIMESTAMPDIFF ( datepart, start, end );

参数

datepart
指定 TIMESTAMPDIFF 返回的日期或时间间隔类型。如果 datepart 为表达式,则必须用括号括起来:
TIMESTAMPDIFF((expression), start, end );

datepart 的求值结果必须为以下字符串字面量之一,无论带引号还是不带引号:

  • year | yy | yyyy

  • quarter | qq | q

  • month | mm | m

  • day | dayofyear | dd | d | dy | y

  • week | wk | ww

  • hour | hh

  • minute | mi | n

  • second | ss | s

  • millisecond | ms

  • microsecond | mcs | us

start, end
指定开始日期和结束日期,其中 startend 的求值结果为以下数据类型之一:

如果 end < start,则 TIMESTAMPDIFF 返回负值。

日期部分间隔

TIMESTAMPDIFF 使用 datepart 实参计算两个日期之间的间隔数,而不是二者之间的实际时间量。有关详细信息,请参阅 DATEDIFF

示例

=> SELECT TIMESTAMPDIFF (YEAR,'1-1-2006 12:34:00', '1-1-2008 12:34:00');
 timestampdiff
---------------
             2
(1 row)

另请参阅

DATEDIFF