【问题标题】:PostgreSQL: Column containing seconds to Hours Minutes Seconds Days INTERVAL SECONDSDIFFPostgreSQL:包含秒到小时分钟秒天间隔 SECONDSDIFF 的列
【发布时间】:2019-11-08 14:16:09
【问题描述】:

我想将包含秒的列(即 11549404)转换为天、小时、分钟、秒

SELECT (myCol || ' second')::interval, 'HH24 hrs MI "minutes" SS "seconds"') AS duration
FROM public.myTable

返回以下内容;

“3208 小时 10 分 04 秒”

以天、小时、分秒显示的方式是什么

【问题讨论】:

    标签: postgresql intervals epoch


    【解决方案1】:

    因为有些日子有 23 小时,有些日子有 25 小时,所以结果并不容易(不可能,因为不知道绝对值)。 interval 类型是月、日和秒的结构。这些值不会在这些字段之间自动移动,因为 mounts 有不同的天数,days 可以有不同的秒数。但是您可以进行一些规范化 - 有一个函数 justify_interval 预计因此天每次都有 24 小时:

    postgres=# select justify_interval('3208 hrs 10 minutes 04 seconds'::interval);
    +-------------------------+
    |    justify_interval     |
    +-------------------------+
    | 4 mons 13 days 16:10:04 |
    +-------------------------+
    (1 row)
    

    【讨论】:

    • 列名怎么样? SELECT (myCol || ' second')::interval, 'HH24 hrs MI "minutes" SS "seconds"')
    • 对于列名,你应该使用关键字AS,如果有一些特殊符号,那么你应该使用双引号SELECT 10 AS "some special name with spaces" ...
    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2012-01-06
    • 2017-05-10
    相关资源
    最近更新 更多