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)
The query does not work for seconds >= 86400 (24 hours or more).
ReplyDeleteIs there anyway to 36:15:00 (36 hours and 15 minutes)?
Excellent work! Many thanks.
ReplyDeleteHow to convert seconds(Int) to Time more than 86400.
ReplyDeletelike 45:38:15 (HH:mm:ss)