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

Datetime PostgreSQL-如何将数字字段中的秒转换为HH:MM:SS,datetime,postgresql,Datetime,Postgresql,我是PostgreSQL的新手(我已经使用MS SQL很多年了),需要将包含时间(以秒为单位)的数字列转换为HH:MM:SS格式 我在谷歌上搜索发现to_char(间隔'1000s','HH24:MI:SS')有效,因此我尝试将其与我的字段名一起使用: to_char(fieldname,'HH24:MI:SS')给出错误不能同时使用“S”和“PL”/“MI”/“SG”/“PR” to_char(fieldname::interval,'HH24:MI:SS')给出错误无法将类型numeric强

我是PostgreSQL的新手(我已经使用MS SQL很多年了),需要将包含时间(以秒为单位)的数字列转换为HH:MM:SS格式

我在谷歌上搜索发现
to_char(间隔'1000s','HH24:MI:SS')
有效,因此我尝试将其与我的字段名一起使用:

to_char(fieldname,'HH24:MI:SS')
给出错误
不能同时使用“S”和“PL”/“MI”/“SG”/“PR”

to_char(fieldname::interval,'HH24:MI:SS')
给出错误
无法将类型numeric强制转换为interval

谁能告诉我哪里出了问题

SELECT  TO_CHAR('1000 second'::interval, 'HH24:MI:SS')
或者,在你的情况下

SELECT  TO_CHAR((mycolumn || ' second')::interval, 'HH24:MI:SS')
FROM    mytable

将秒转换为HH:MM:SS

SELECT 120 * interval '1 sec';
SELECT 120 * interval '1 min'; 
你将得到00:02:00

将分钟转换为HH:MM:SS

SELECT 120 * interval '1 sec';
SELECT 120 * interval '1 min'; 

您将得到02:00:00

字段名
是整数吗?此外,如果时间间隔大于一天,您希望得到什么输出?@leonbloy:
HH24
可以超过24,不管它的名称如何。@Quassnoi:Correct。我只是想知道这是否是海报想要的。@leonbloy:是的,它是一个数字(18,0)。它可能会超过24小时,但可能性很小-我正在查看JIRA的工作日志。
mycolumn*“1秒”::interval
,这将避免反复重新分析文本格式(尽管在这种情况下没有多大实际区别)@如果我得到1:20:30,然后转换成80:30,有可能吗?请帮助me@AnkitDoshi:请将其作为另一个问题发布。OP没有询问,但如果您来这里尝试使用红移进行相同的转换,这将起作用,因为它实际上不受支持。出于某种原因,直到我在mycolumn和second上显式使用了
concat()
,这才对我起作用。。。但那太完美了,谢谢你。