Я хотел бы спросить, почему вы хотите представить свои данные таким образом, и предложить вам рассмотреть другой подход, такой как добавление секунд к времени начала, в зависимости от ваших данных и требований к отчетности.
Короче, старайтесь избегать форматирования текста в SQL.Он не создан для этого.
Это в стороне, чтобы ответить на ваш вопрос;это довольно стандартное целочисленное деление и математика по модулю.Вы хотите сначала преобразовать свои секунды в минуты, разделив на 60, а затем в часы, снова разделив на 60.Вместо этого можно использовать модуль по модулю, чтобы получить минуты, оставшиеся от расчета часов.Остальное форматирование текста:
declare @t table (s int);
insert into @t values(3600),(28800)
select s
,right('00' + cast(s/60/60 as varchar(2)),2) + '.' + right('00' + cast(s/60%60 as varchar(2)),2) as Formatted
from @t
Вывод:
+---+-------+-----------+
| | s | Formatted |
+---+-------+-----------+
| 1 | 3600 | 01:00 |
| 2 | 28800 | 08:00 |
+---+-------+-----------+