操作数据类型时间对于avg操作符无效...?

gen*_*eek 9 sql sql-server

我怎样才能在以下查询中平均(time(4)):

  select top 10 avg(e.Duration) from TimeTable e
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

操作数据类型时间对于avg运算符无效.

持续时间是类型时间(4),例如:

Duration
-------------
00:00:10.0000
Run Code Online (Sandbox Code Playgroud)

HAB*_*ABO 14

您可以使用DateDiff( ms, '00:00:00', e.Duration )将时间转换为整数毫秒.将其用于聚合,然后将结果转换回来,例如Cast( DateAdd( ms, 1234, '00:00:00' ) as Time ).


Raf*_*afi 8

改善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
Run Code Online (Sandbox Code Playgroud)