PostgreSQL - 如何将数字字段中的秒转换为HH:MM:SS

She*_*vek 15 postgresql datetime

我是PostgreSQL的新手(我多年来一直使用MS SQL),需要将包含时间的数字列转换为HH:MM:SS格式.

我有谷歌搜索,发现to_char(interval '1000s', 'HH24:MI:SS')有效,所以我试图用我的字段名称:

to_char(fieldname, 'HH24:MI:SS') 给出错误 cannot use "S" and "PL"/"MI"/"SG"/"PR" together

to_char(fieldname::interval, 'HH24:MI:SS') 给出错误 cannot cast type numeric to interval

有谁能告诉我哪里出错了?

Qua*_*noi 34

SELECT  TO_CHAR('1000 second'::interval, 'HH24:MI:SS')
Run Code Online (Sandbox Code Playgroud)

或者,在你的情况下

SELECT  TO_CHAR((mycolumn || ' second')::interval, 'HH24:MI:SS')
FROM    mytable
Run Code Online (Sandbox Code Playgroud)

  • 或者`mycolumn*'1秒':: interval`,这将避免反复重复文本格式(虽然在这种情况下没有太大的实际区别) (2认同)

小智 12

要将秒数转换为HH:MM:SS

SELECT 120 * interval '1 sec';
Run Code Online (Sandbox Code Playgroud)

你会得到00:02:00

将分钟转换为HH:MM:SS

SELECT 120 * interval '1 min'; 
Run Code Online (Sandbox Code Playgroud)

你会得到02:00:00