假设我有一个区间
4 days 10:00:00
在postgres。我如何将其转换为小时数(在这种情况下为106 ?)有什么活动吗,还是我应该咬紧牙关做点什么
extract(days, my_interval) * 24 + extract(hours, my_interval)
假设我有一个区间
4 days 10:00:00
在postgres。我如何将其转换为小时数(在这种情况下为106 ?)有什么活动吗,还是我应该咬紧牙关做点什么
extract(days, my_interval) * 24 + extract(hours, my_interval)
当前回答
select date 'now()' - date '1955-12-15';
下面是一个简单的查询,计算总天数。
其他回答
如果你转换表字段:
定义字段,使其包含秒: 创建表如果不存在测试( ... 字段INTERVAL秒(0) ); 提取值。记住,如果转换为int,你可能会在间隔变大时得到一个不愉快的惊喜: EXTRACT(EPOCH FROM field)::int
可能最简单的方法是:
SELECT EXTRACT(epoch FROM my_interval)/3600
要得到天数,最简单的方法是:
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;
select floor((date_part('epoch', order_time - '2016-09-05 00:00:00') / 3600)), count(*)
from od_a_week
group by floor((date_part('epoch', order_time - '2016-09-05 00:00:00') / 3600));
::int转换遵循舍入原则。 如果你想要一个不同的结果,比如四舍五入,你可以使用相应的数学函数,比如floor。
如果你想要整数,即天数:
SELECT (EXTRACT(epoch FROM (SELECT (NOW() - '2014-08-02 08:10:56')))/86400)::int