How to Convert Seconds to HH:MM:SS

If you have a column that contains time in seconds and want to convert it to an hour : minute: seconds format, use this query. This query also takes care of displaying hours > 23.


DECLARE @SecondsToConvert int
SET @SecondsToConvert = 10000

-- Declare variables
DECLARE @Hours int
DECLARE @Minutes int
DECLARE @Seconds int
DECLARE @Time datetime

-- Set the calculations for hour, minute and second
SET @Hours = @SecondsToConvert/3600
SET @Minutes = (@SecondsToConvert % 3600) / 60
SET @Seconds = @SecondsToConvert % 60

-- Store the datetime information retrieved in the @Time variable
SET @Time = (SELECT
RTRIM(CONVERT(char(8), @Hours) ) + ':' +
CONVERT(char(2), @Minutes) + ':' +
CONVERT(char(2), @Seconds));

-- Display the @Time variable in the format of HH:MM:SS
SELECT CONVERT(varchar(8),CONVERT(datetime,@Time),108)

3 comments:

  1. The query does not work for seconds >= 86400 (24 hours or more).

    Is there anyway to 36:15:00 (36 hours and 15 minutes)?

    ReplyDelete
  2. Excellent work! Many thanks.

    ReplyDelete
  3. How to convert seconds(Int) to Time more than 86400.
    like 45:38:15 (HH:mm:ss)

    ReplyDelete