2010-05-25 207 views
12

我是PostgreSQL的新手(我一直使用MS SQL多年),需要將包含時間的數字列轉換爲HH:MM:SS格式。PostgreSQL - 如何將數字字段中的秒數轉換爲HH:MM:SS

我用Google搜索,發現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

誰能告訴我我哪裏錯了?

+0

'fieldname'是一個整數?此外,如果您的間隔超過一天,您會期望輸出什麼? – leonbloy 2010-05-25 14:49:19

+0

@leonbloy:儘管命名,HH24可以超過24。 – Quassnoi 2010-05-25 14:55:04

+0

@Quassnoi:正確。只是想知道這是海報想要的。 – leonbloy 2010-05-25 15:42:26

回答

22
SELECT TO_CHAR('1000 second'::interval, 'HH24:MI:SS') 

,或者在你的情況

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

這是'(... ||)我錯過了。非常感謝! – Shevek 2010-05-25 14:55:23

+2

或'mycolumn *「1第二個」 :: interval'這將避免一遍又一遍地重新分析文本格式(雖然它不會使在這種情況下太大的實際差異) – araqnid 2010-05-25 15:14:44

+0

@Quassnoi是可能的,如果我會得到1:20 :30s然後轉換成80:30請幫我 – 2014-04-24 09:20:38

9

要秒轉換爲HH:MM:SS

SELECT 120 * interval '1 sec'; 

您將獲得00:02:00

要轉換分鐘到HH:MM:SS

SELECT 120 * interval '1 min'; 

您將獲得02:00:00

相關問題