如何在postgreSql中将小时数转换为工作小时数?

时间:2014-01-31 07:26:05

标签: postgresql

我有一个列,其格式为“12:19:04”。 即12小时19分钟和4秒。 考虑到工作时间为一天,即10小时,我希望将其转换为天数

因此上述时间应显示为1天2小时19分钟和4秒

如果小时值太大,则应显示月份小时和分钟。

请帮助我。

1 个答案:

答案 0 :(得分:1)

最简单的方法:使用纪元时间,以秒为单位除以10天,将余数转换回秒数。

WITH s(secs) AS (SELECT extract(epoch from interval '12:19:04'))
SELECT justify_interval(
         floor(secs / 36000) * INTERVAL '1' DAY 
       + (secs::integer % 36000) * INTERVAL '1' SECOND
) FROM s;