我需要添加一些间隔并在Excel中使用结果.
以来
sum(time.endtime-time.starttime)
将间隔返回为"1天01:30:00"并且此格式打破了我的Excel工作表,我认为输出像"25:30:00"一样很好但是在PostgreSQL中找不到任何方法文档.
这里有人可以帮帮我吗?
我唯一可以带来的(除了解析天数和每次增加24小时)是:
mat=> select date_part('epoch', '01 day 1:30:00'::interval); date_part ----------- 91800 (1 row)
它将为您提供秒数,这对于Excel来说可能没问题.
由于该主题没有确切的解决方案:
=> SELECT date_part('epoch', INTERVAL '1 day 01:30:00') * INTERVAL '1 second' hours; hours ----------- 25:30:00 (1 row)
资料来源:文件
您可以使用EXTRACT
将间隔转换为秒.
SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours'); Result: 442800
然后你需要做自己的数学运算(或让Excel做).
请注意,'1天'不一定等于'24小时' - PostgreSQL处理跨越DST转换的间隔.
如果你想Postgres的处理HH:MM:SS格式为你,走差异化的新纪元的秒数并将其转换为以秒为缩放的时间间隔:
SELECT SUM(EXTRACT(EPOCH FROM time.endtime) - EXTRACT(EPOCH FROM time.starttime)) * INTERVAL '1 SECOND' AS hhmmss