Informix

在 Informix 中將秒轉換為 HH:MM:SS

  • December 28, 2020

如何在 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

引用自:https://dba.stackexchange.com/questions/282234