У меня средняя продолжительность между несколькими датами (формат DATETIME), т.е.1900-01-01 01: 30.00.00.Как я могу преобразовать DATETIME в формат часы: минуты: секунды, где часы могут быть больше 24 - формат вывода может быть VARCHAR.
IE.
1 days 12 hours 5 minutes convert to 36:05:00
2 days 1 hour 10 minutes 5 seconds convert to 49:10:05
и т. Д.
DECLARE @date1 DATETIME = '2011-08-03 13:30'
DECLARE @date2 DATETIME = '2011-08-03 13:00'
DECLARE @date3 DATETIME = '2011-08-03 14:00'
DECLARE @abc DATETIME = '2011-08-03 12:00'
select CAST(AVG(CAST(data-@abc as float)) as datetime)
from
(
select 'data' as label, @date1 as data
union all
select 'data' as label, @date2 as data
union all
select 'data' as label, @date3 as data
) as a
group by label
Я хотел бы получить результат как 01:30:00, что означает, что среднее время составляет 1 час 30 минут.
Я пробовал:
CONVERT(VARCHAR(10), CAST(AVG(CAST(data-@abc as float)) as datetime), 108)
, нотогда я получаю только часть времени в формате ЧЧ: ММ: СС.Когда я установлю @abc = 2011-08-02, тогда результаты будут такими же - это неверно.
С уважением, Марцин