如何使用postgres将间隔转换为数小时?
说我有一个间隔
4 days 10:00:00
在postgres。 如何将其转换为几个小时(在这种情况下是106)?有没有一个function,或者我应该咬子弹,做一些像
extract(days, my_interval) * 24 + extract(hours, my_interval)
可能最简单的方法是:
SELECT EXTRACT(epoch FROM my_interval)/3600
如果你想整数即天数:
SELECT (EXTRACT(epoch FROM (SELECT (NOW() - '2014-08-02 08:10:56')))/86400)::int
要获得最简单的方法是:
SELECT EXTRACT(DAY FROM NOW() - '2014-08-02 08:10:56');
据我所知,它会返回相同的:
SELECT (EXTRACT(epoch FROM (SELECT (NOW() - '2014-08-02 08:10:56')))/86400)::int;
如果你转换表字段:
- 定义该字段,使其包含秒:
CREATE TABLE IF NOT EXISTS test ( ... field INTERVAL SECOND(0) );
- 提取值。 记住投到int其他明智的,你可以得到一个不愉快的惊喜一旦间隔很大:
EXTRACT(EPOCH FROM field)::int
select date 'now()' - date '1955-12-15';
这是计算总天数的简单查询。