В зависимост от резултата, който искате:
DECLARE @s INT = 139905;
SELECT CONVERT(VARCHAR(12), @s /60/60/24) + ' Day(s), '
+ CONVERT(VARCHAR(12), @s /60/60 % 24)
+ ':' + RIGHT('0' + CONVERT(VARCHAR(2), @s /60 % 60), 2)
+ ':' + RIGHT('0' + CONVERT(VARCHAR(2), @s % 60), 2);
Резултат:
1 Day(s), 14:51:45
Или:
DECLARE @s INT = 139905;
SELECT
CONVERT(VARCHAR(12), @s /60/60/24) + ' Day(s), '
+ CONVERT(VARCHAR(12), @s /60/60 % 24) + ' Hour(s), '
+ CONVERT(VARCHAR(2), @s /60 % 60) + ' Minute(s), '
+ CONVERT(VARCHAR(2), @s % 60) + ' Second(s).';
Резултат:
1 Day(s), 14 Hour(s), 51 Minute(s), 45 Second(s).
Можете да замените 60/60/24
с 86400
и т.н., но намирам за по-добре самодокументиране, ако оставите в изчисленията /секунди/минути/часове. И ако се сблъсквате с таблица, просто използвайте column_name
на мястото на @s
.