2017-10-13 21 views
1

我有一個數字作爲integer傳遞,並希望將其轉換爲time,並將此數字用作小時。在PostgreSQL中隨時隨地投射整數

我發現使用數字作爲分鐘的解決方案,但我不熟悉PostgreSQL語法。不知道該怎麼做在這裏:

select CAST(to_char(czas, 'FM99909:99') AS TIME WITHOUT 
TIME ZONE)::TIME from test 

其結果將是:

00:15:00 

但是我正在尋找一種方法,使之:

15:00:00 

我一直努力着MS SQL相當長一段時間,我很驚訝PostgreSQL語法有多複雜。

+0

新的地形總是在第一似乎更復雜。等到你有了一些經驗。 –

回答

2

如果您的列test.czas應該表示小時,則有一種更簡單的方法。用它乘以interval'1 hour'

SELECT (interval '01:00' * czas)::time FROM test; 

製作您想要的結果完全吻合。即使使用小數位。

'01:00''1 hour'相當於interval literals
對於大於等於24的值,您將獲得剩餘部分(完整日期被截斷) - 就像您使用czas%24一樣。

相關: