时间/日期操作符
用户在使用时间和日期操作符时,对应的操作数请使用明确的类型前缀修饰,以确保数据库在解析操作数的时候能够与用户预期一致,不会产生用户非预期的结果。
比如下面示例没有明确数据类型就会出现异常错误。
1 2 |
SELECT date '2001-10-01' - '7' AS RESULT; ERROR: invalid input syntax for type timestamp: "7" |
操作符 |
示例 |
||||||
---|---|---|---|---|---|---|---|
+ |
date类型参数与integer参数相加,获取时间间隔为7天后的时间:
|
||||||
date类型参数与interval参数相加,获取时间间隔为1小时后的时间:
|
|||||||
date类型参数与time类型参数相加,获取具体的日期和时间结果:
|
|||||||
date类型参数与interval参数相加,获取时间间隔为1个月的时间: date函数对于日期相加减超过月份的日期范围,会对齐到对应月份最后一天,不超过则不处理。例如:2021-01-31后一个月的日期为2021-02-31,但2月为闰月,只有28天,那么date函数会返回对齐到2月份最后一天的结果,即2021-02-28。
|
|||||||
interval参数相加,获取两个时间间隔之和:
|
|||||||
timestamp时间类型参数与interval参数相加,获取间隔23小时后的时间:
|
|||||||
time类型参数与interval参数相加,获取间隔时间为3小时后的时间:
|
|||||||
- |
date类型参数相减,获取两个日期的时间差:
|
||||||
date类型参数与integer参数相减,返回timestamp类型,获取两者的时间差:
|
|||||||
date类型参数与interval参数相减,获取两者的日期、时间差:
|
|||||||
time类型参数相减,获取两参数的时间差:
|
|||||||
time类型参数与interval相减,获取两参数的时间差:
|
|||||||
timestamp类型参数与interval相减,从时间戳中减去时间间隔,获取两者的日期时间差:
|
|||||||
interval参数相减,获取两者的时间差:
|
|||||||
timestamp类型参数相减,获取两者的日期时间差:
|
|||||||
获取当前日期的前一天:
|
|||||||
* |
将时间间隔乘以数量:
|
||||||
/ |
用时间间隔除以数量,获取一段时间中的某一段:
|