4 days 10:00:00
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;
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));
conversion依遵循舍入的原则。 如果您想要不同的结果,例如舍入,则可以使用相应的数学功能,例如
。
如果您转换表字段:定义该字段,因此包含秒:
floor
记者要投入到其他明智的情况下,一旦间隔很大,您可能会得到令人不愉快的惊喜:
CREATE TABLE IF NOT EXISTS test (
...
field INTERVAL SECOND(0)
);
函数避免在整个地方具有详细的作用。返回几秒钟,所以需要数小时需要
EXTRACT(EPOCH FROM field)::int
extract epoch
int_interval('1 day') / 3600
如果您想在添加间隔之后仅在日期类型中显示结果,则应尝试此
CREATE OR REPLACE FUNCTION int_interval(interval_text text) returns INT LANGUAGE SQL IMMUTABLE as $$ SELECT EXTRACT(epoch FROM interval_text::INTERVAL)::INT $$;
我与PostgreSQL 11一起工作,我创建了一个函数,以获取时间2差异时间戳
int_interval('1 day')
Select (current_date + interval 'x day')::date;
在这里是简单的查询,可以计算总数的总数。