【发布时间】:2014-08-13 11:18:02
【问题描述】:
我想在 PostgreSQL 中获取当前时间前 1 小时的时间。我该怎么做?
比如说现在时间是'17:37:06',那么我希望结果输出为'16:37:06'
【问题讨论】:
标签: postgresql datetime
我想在 PostgreSQL 中获取当前时间前 1 小时的时间。我该怎么做?
比如说现在时间是'17:37:06',那么我希望结果输出为'16:37:06'
【问题讨论】:
标签: postgresql datetime
如果你真的只想要时间,使用current_time current_timestamp 或now() 也会返回一个日期。
select current_time - interval '1' hour
或减去 1 小时 25 分钟:
select current_time - interval '1:25'
(请注意,如果您使用带小时和分钟的间隔,则需要删除hour关键字)
如果您确实希望日期成为结果的一部分,只需将 current_time 替换为 current_timestamp。
【讨论】:
interval 的附加选项限制了存储字段集,因此基本上 interval '1:25' hour 等于 1 小时 -- interval '1:25' 和 interval '1:25 hour' 是有效的替代方案。 sqlfiddle.com/#!15/d41d8/2346
interval '1' hour,因为这是 SQL 标准定义的格式)
interval '1:25' hour to minute 或使用 iso 8601(日期/时间标准)interval 'PT1H25M',但我认为这些更难阅读。跨度>
使用interval 类型对date 类型进行算术运算
select now() - interval '1 hour';
可以使用 1 个半小时这样的分数
select now() - 1.5 * interval '1 hour';
【讨论】: