我有一个表格,里面有一个间隔类型的列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
。