时间函数
本节介绍用于检查和操作 TIME 值的函数和运算符。
时间运算符
下表展示了 TIME 类型可用的数学运算符。
| 运算符 | 说明 | 示例 | 结果 |
|---|---|---|---|
+ | 与 INTERVAL 相加 | TIME '01:02:03' + INTERVAL 5 HOUR | 06:02:03 |
- | 减去 INTERVAL | TIME '06:02:03' - INTERVAL 5 HOUR | 01:02:03 |
时间函数
下表展示了 TIME 类型可用的标量函数。
| 名称 | 说明 |
|---|---|
date_diff(part, starttime, endtime) | starttime 与 endtime 之间 part 边界的数量,包含较大的时间值,不包含较小的时间值。 |
date_part(part, time) | 获取子字段(等价于 extract)。 |
date_sub(part, starttime, endtime) | starttime 与 endtime 之间区间的有符号长度,截断为 part 的整倍数。 |
extract(part FROM time) | 从时间中获取子字段。 |
get_current_time() | 当前时间(当前事务开始时)。 |
make_time(bigint, bigint, double) | 根据给定部分构造时间。 |
为时间类型定义的日期部分仅有 epoch、hours、minutes、seconds、milliseconds 和 microseconds。
date_diff(part, starttime, endtime)
| 说明 | starttime 与 endtime 之间 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)
| 说明 | starttime 与 endtime 之间区间的有符号长度,截断为 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 |