时间/日期操作符

用户在使用时间和日期操作符时,对应的操作数请使用明确的类型前缀修饰,以确保数据库在解析操作数的时候能够与用户预期一致,不会产生用户非预期的结果。
比如下面示例没有明确数据类型就会出现异常错误。
1
|
SELECT date '2001-10-01' - '7' AS RESULT; |
操作符 |
用法示例 |
示例结果 |
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+ |
date + integer → timestamp 给日期加上天数。
|
date类型参数与integer参数相加,获取时间间隔为7天后的时间:
|
||||||||||||
+ |
date + interval → timestamp 为日期添加时间间隔。
|
date类型参数与interval参数相加。 获取时间间隔为1小时后的时间:
获取时间间隔为1个月的时间:
date函数对于日期相加减超过月份的日期范围,会对齐到对应月份最后一天,不超过则不处理。
|
||||||||||||
+ |
date + time → timestamp 在日期中添加一天中的时间。
|
date类型参数与time类型参数相加,获取具体的日期和时间结果:
|
||||||||||||
+ |
interval + interval → interval 添加时间间隔。
|
interval参数相加,获取两个时间间隔之和:
|
||||||||||||
+ |
timestamp + interval → timestamp 在时间戳中添加一个时间间隔。
|
timestamp时间类型参数与interval参数相加,获取间隔23小时后的时间:
|
||||||||||||
+ |
time + interval → time 为时间添加时间间隔。
|
time类型参数与interval参数相加,获取间隔时间为3小时后的时间:
|
||||||||||||
- |
date - date → integer 减去日期,生成日期时间差。
|
date类型参数相减,获取两个日期的时间差:
|
||||||||||||
- |
date - integer → timestamp 从日期中减去天数。
|
date类型参数与integer参数相减,获取两者的时间差:
|
||||||||||||
- |
date - interval → timestamp 从日期中减去时间间隔。
|
date类型参数与interval参数相减,获取两者的日期、时间差:
|
||||||||||||
- |
time - time → interval 减去时间。
|
time类型参数相减,获取两参数的时间差:
|
||||||||||||
- |
time - interval → time 从时间中减去时间间隔。
|
time类型参数与interval相减,获取两参数的时间差:
|
||||||||||||
- |
timestamp - interval → timestamp 从时间戳中减去时间间隔。
|
timestamp类型参数与interval相减,获取两者的日期时间差:
|
||||||||||||
- |
interval - interval → interval 减去时间间隔。
|
interval参数相减,获取两者的时间差:
|
||||||||||||
- |
timestamp - timestamp → interval 减去时间戳。
|
timestamp类型参数相减,获取两者的日期时间差:
|
||||||||||||
- |
select now() - interval → timestamp with time zone 获取当前日期的前一天:
|
获取当前日期的前一天:
|
||||||||||||
* |
interval * double precision → interval 将时间间隔乘以数量:
|
间隔1秒乘以900。
间隔1天乘以21天。
间隔1小时乘以3.5。
|
||||||||||||
/ |
interval / double precision → interval
|
用时间间隔除以数量,获取一段时间中的某一段:
|