跳到主要内容

时间函数

本节介绍用于检查和操作 TIME的函数和运算符。

时间运算符

下表展示了 TIME 类型可用的数学运算符。

运算符说明示例结果
+INTERVAL 相加TIME '01:02:03' + INTERVAL 5 HOUR06:02:03
-减去 INTERVALTIME '06:02:03' - INTERVAL 5 HOUR01:02:03

时间函数

下表展示了 TIME 类型可用的标量函数。

名称说明
date_diff(part, starttime, endtime)starttimeendtime 之间 part 边界的数量,包含较大的时间值,不包含较小的时间值。
date_part(part, time)获取子字段(等价于 extract)。
date_sub(part, starttime, endtime)starttimeendtime 之间区间的有符号长度,截断为 part 的整倍数。
extract(part FROM time)从时间中获取子字段。
get_current_time()当前时间(当前事务开始时)。
make_time(bigint, bigint, double)根据给定部分构造时间。

为时间类型定义的日期部分仅有 epochhoursminutessecondsmillisecondsmicroseconds

date_diff(part, starttime, endtime)

| 说明 | starttimeendtime 之间 part 边界的数量,包含较大的时间值,不包含较小的时间值。 | | 示例 | date_diff('hour', TIME '01:02:03', TIME '06:01:03') | | 结果 | 5 | | 别名 | datediff |

date_part(part, time)

| 说明 | 获取子字段(等价于 extract)。 | | 示例 | date_part('minute', TIME '14:21:13') | | 结果 | 21 | | 别名 | datepart |

date_sub(part, starttime, endtime)

| 说明 | starttimeendtime 之间区间的有符号长度,截断为 part 的整倍数。 | | 示例 | date_sub('hour', TIME '01:02:03', TIME '06:01:03') | | 结果 | 4 | | 别名 | datesub |

extract(part FROM time)

| 说明 | 从时间中获取子字段。 | | 示例 | extract('hour' FROM TIME '14:21:13') | | 结果 | 14 |

get_current_time()

| 说明 | 以本地时区的 TIMETZ 返回当前时间(当前事务开始时)。 | | 示例 | get_current_time() | | 结果 | 06:09:59.988+2 | | 别名 | current_time(可省略括号) |

make_time(bigint, bigint, double)

| 说明 | 根据给定部分构造时间。 | | 示例 | make_time(13, 34, 27.123456) | | 结果 | 13:34:27.123456 |