Informix
在 Informix 中將秒轉換為 HH:MM:SS
如何在 Informix 中將浮點數轉換為 HH:MM:SS。我有一個執行持續時間為 1449.448520410 的列。我想將其轉換為人類可讀的格式。有很多方法可以解決這個問題,但我正在努力尋找一種方法。
我已經確定執行以下內容接近我想要的,但不包括時間:
select b.run_duration, floor(run_duration / 60) || ':' || lpad(mod(run_duration, 60), 2, '0') as run_duration_time from ph_task a, ph_run b where a.tk_id = b.run_task_id order by run_duration DESC
輸出:
24:09
我想看到的是:
00:24:09
如何自定義我的 SQL 來提供它?
使用下面的 sql,我設法給出了我正在尋找的東西。我使用數字 6346 來顯示填充小時、分鐘和秒的輸出。
使用的查詢:
select lpad(floor(6346 / 60 / 60),2,'0') || ':' || lpad(mod(6346/60, 60), 2, '0') || ':' || lpad(mod(6346,60), 2, '0') as run_duration_time from systables
輸出:
01:45:46
另一個沒有小時的例子:
select lpad(floor(1000 / 60 / 60),2,'0') || ':' || lpad(mod(1000/60, 60), 2, '0') || ':' || lpad(mod(1000, 60), 2, '0') as run_duration_time
來自系統表
輸出:
00:16:40
另一個沒有小時和分鐘的例子:
select lpad(floor(45 / 60 / 60),2,'0') || ':' || lpad(mod(45/60, 60), 2, '0') || ':' || lpad(mod(45, 60), 2, '0') as run_duration_time
來自系統表
輸出:
00:00:45