я нашел следующую формулу на переполнение стека, который помог мне суммировать значения времени, которая работает блестяще после настройки его немного:SQL Server - время Sum проблема отображения
SELECT CAST(t.TotalHours/3600 AS VARCHAR(2)) + ':'
+ CAST(t.TotalHours%3600/60 AS VARCHAR(2)) + ':00'
FROM (SELECT SUM(DATEDIFF(S, '00:00', WorkingHours)) AS TotalHours
FROM workhour) t
из SQL How to sum times from Time datatype columns in hh:mm:ss
Однако У меня теперь есть проблема с точки зрения форматирования. Когда я запускаю этот запрос на моих данных, он возвращает время сумму в следующем формате: HH:M:SS (32:0:00)
Мои данные:
WorkingHours
05:30
06:00
05:30
08:00
07:00
Ожидаемый выход:
TotalHours
32:00:00
Как вы заметили, мои данные не состоит из секунд, поэтому я добавил, что в конце как строка. Это минуты, которые, кажется, вызывают у меня проблему.
Вопрос: Есть ли способ настроить выше Forumla так, что я могу получить общую для отображения в качестве HH:MM:SS -> 32:00:00
ПРИМЕЧАНИЯ: Это происходит, когда поле минут возвращает 0, или имеет значение менее 10 ...
Благодарим вас за помощь. Я использую Центр данных SQL Server 2016 и храню данные в моей таблице как varchar в формате HH: MM, называемый WorkHours.
Работа Ответ:
SELECT CAST(t.TotalHours/3600 AS VARCHAR(2)) + ':' +
RIGHT('000' + CAST (t.TotalHours%3600/60 AS VARCHAR(2)), 2) + ':00'
FROM (SELECT SUM(DATEDIFF(S, '00:00', TotalHours)) AS TotalHours
FROM workhour) t
Можете ли вы показать свои исходные данные и ожидаемый результат – TheGameiswar
Будьте методическими. Получите часы, минуты и секунды в отдельности, затем соедините их. –
мои данные являются исходными данными из моей таблицы, и ожидаемый результат был добавлен ниже – Crezzer7