Postgresql:来自HH的“偏移”间隔:MM:SS到00:HH:MM

时间:2012-09-06 07:13:17

标签: sql postgresql intervals time-format

我有一个表格,其中存在间隔类型列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

...

应该对列运行什么类型的查询?

1 个答案:

答案 0 :(得分:4)

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