PostgreSQL:包含秒到小时分钟秒天间隔 SECONDSDIFF 的列
Posted
技术标签:
【中文标题】PostgreSQL:包含秒到小时分钟秒天间隔 SECONDSDIFF 的列【英文标题】:PostgreSQL: Column containing seconds to Hours Minutes Seconds Days INTERVAL 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 秒”
以天、小时、分秒显示的方式是什么
【问题讨论】:
【参考方案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" ...
以上是关于PostgreSQL:包含秒到小时分钟秒天间隔 SECONDSDIFF 的列的主要内容,如果未能解决你的问题,请参考以下文章
以秒为单位将时间间隔格式化为 X 小时(秒) Y 分钟(秒) Z 秒(秒)
尝试从一组 30 分钟的时间间隔中获取以小时为单位的开始和结束时间,但某些结果未正确返回
使用 pandas 的 datetimeindex 在特定日期按分钟和小时提取时间间隔