我怎样才能在以下查询中平均(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 ).
改善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)