如何在以下查询中使用avg(time(4)):
select top 10 avg(e.Duration) from TimeTable e
我遇到以下错误:
avg 操作符对于数据类型为 time 的操作数无效。
Duration 是 time(4) 类型,例如:
Duration
-------------
00:00:10.0000
如何在以下查询中使用avg(time(4)):
select top 10 avg(e.Duration) from TimeTable e
我遇到以下错误:
avg 操作符对于数据类型为 time 的操作数无效。
Duration 是 time(4) 类型,例如:
Duration
-------------
00:00:10.0000
DateDiff( ms, '00:00:00', e.Duration )
将时间转换为整数毫秒数。将其用于聚合,然后将结果转换回去,例如Cast( DateAdd( ms, 1234, '00:00:00' ) as Time )
。ms
是什么? - Zameer Ansari在HABO的答案基础上改进:
select top 10
Cast(DateAdd( ms,avg(DateDiff( ms, '00:00:00', e.Duration)), '00:00:00' ) as time) as 'avg duration'
from TimeTable e
CAST(DATEADD( ms,AVG(CAST(DATEDIFF( ms, '00:00:00', ISNULL(e.Duration, '00:00:00')) as bigint)), '00:00:00' ) as TIME) as 'avg_time'