【发布时间】:2011-08-03 15:49:01
【问题描述】:
我有几个日期之间的平均持续时间(DATETIME 格式),即。 1900-01-01 01:30.00.00。 如何将 DATETIME 转换为格式 hours:minutes:seconds,其中小时可以超过 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)
但是我只得到 HH:MM:SS 中的时间部分。当我设置 @abc = 2011-08-02 时,结果将是相同的 - 这是不正确的。
国王的问候, 马辛
【问题讨论】: