如何使用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; 

如果你转换表字段:

  1. 定义该字段,使其包含秒: CREATE TABLE IF NOT EXISTS test ( ... field INTERVAL SECOND(0) );
  2. 提取值。 记住投到int其他明智的,你可以得到一个不愉快的惊喜一旦间隔很大: EXTRACT(EPOCH FROM field)::int
  select date 'now()' - date '1955-12-15'; 

这是计算总天数的简单查询。