我有一个表格,里面有一个间隔类型的列Duration。目前,这些值用如下数据表示为HH:MM:SS

15:32:00
17:01:00
16:02:00
...

问题是,实际上,数据只类似于几分钟和几秒钟,应该更新列的值,以便使值变成:
15:32:00 -> 00:15:32
17:01:00 -> 00:17:01
16:02:00 -> 00:16:02

...

应该对列运行哪种查询?

最佳答案

SELECT EXTRACT(hour FROM duration) * INTERVAL '1' minute + EXTRACT(minute FROM duration) * INTERVAL '1' second
FROM tbl
;

编辑
这是我最初的回答,但没有回答最初的问题:
你可以试试这样的方法:
SELECT duration - EXTRACT(hour FROM duration) * INTERVAL '1' hour
FROM tbl
;

它从间隔中提取小时部分并从原始值中减去小时部分。如果确实需要更新数据,请重写为UPDATE

09-04 22:57
查看更多