[SQL]把 秒數 轉成 hh:mm:ss 字串

要如何把 秒數 轉成 hh:mm:ss 字串呢?

今天看到「SQL SERVER – Convert Seconds to Hour : Minute : Seconds Format」,

直覺就想到之前有使用Convert去轉成 hh:mm:ss 的字串,所以再記錄一下,

Pinal 的方式是分別除以時分秒及取餘數,如下,

--http://blog.sqlauthority.com/2014/08/17/sql-server-convert-seconds-to-hour-minute-seconds-format
DECLARE @TimeinSecond INT
 SET @TimeinSecond = 86399 -- Change the seconds
SELECT RIGHT('0' + CAST(@TimeinSecond / 3600 AS VARCHAR),2) + ':' +
RIGHT('0' + CAST((@TimeinSecond / 60) % 60 AS VARCHAR),2)  + ':' +
RIGHT('0' + CAST(@TimeinSecond % 60 AS VARCHAR),2)

 

另外,我們可以把那個秒數加上一個日期,例如 1900/01/01 ,

讓它變成日期格式,再透過Convert 108 格式,轉成我們需要的 hh:mm:ss,如下,

DECLARE @TimeinSecond INT
SET @TimeinSecond = 86399 -- Change the seconds
SELECT CONVERT(VARCHAR, DATEADD(s, @TimeinSecond, '1900/01/01'), 108)

image

 

--Way 3 DateAdd use 0

SELECT CONVERT(VARCHAR, DATEADD(s, @TimeinSecond, 0), 108)

 

參考資料

SQL SERVER – Convert Seconds to Hour : Minute : Seconds Format

比較2個時間差多少個小時、分、秒

CAST 和 CONVERT

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^