2011-09-08 31 views
1

我正在讀取一天中以秒爲單位的整數字段(存儲打開時間),並將其轉換爲某人實際能夠讀取的內容。DB2每天的可讀時間

例子: 32400秒=上午9點(3600分之32400= 9)

這是好的,如果每家商店正好打開的時間,但現在一些商店打開和關閉的半小時。

例子 9:30以9返回(34200/3600 = 9),這並不好。我不希望34200以9.5返回。

理想情況下,我想讓32400回到900和34200回到930,而46800回到1300.輸入和輸出參數都需要是整數(我不能更改列類型)。

在DB2中執行此操作的簡單方法是什麼?由於

回答

4

這是非常簡單的(前提是你使用的DB2在Linux,UNIX或Windows):

VALUES INT(TIME('00:00:00') + 34200 seconds)/100 

這將返回所需的整數930爲34200的輸入,以及用於1300的46800輸入

+0

+1直接進入'seconds'。我覺得自己像一個白癡,忘記了(考慮我放置的東西)。 –

+0

我只是想對你的回答做出評論,但是OP要求結果是一個INT而不是一個TIME。 –

+0

就像一個魅力。謝謝! – user935618

1

我假設你目前的數據顯示,而不是毫秒最初說...

下面將讓你有效time數據類型在DB2:

SELECT CAST('00:00:00' as TIME) + (34200/3600) HOURS + MOD(34200/60, 60) MINUTES 
FROM sysibm/sysdummy1 

然後,在顯示代碼中輕鬆處理轉換爲更易讀的格式。