好。经过研究,研究和更多的研究,我已经做到了这一点,我在最后一步需要帮助。
SELECT Cast(DateAdd( ss,AVG(DateDiff( ss, '00:00:00', (A.ReceivedWhen - A.CallStartWhen))), '00:00:00' ) as time) as 'avg duration'
我已经得到了我的ReceivedWhen和CallStartWhen之间的区别,平均它和Grouped它。没问题。
我的'平均持续时间'是正确的,除了它包含毫秒
00:01:43.0000000
如何删除我的毫秒?
表达式的类型是time
,它本身没有格式。由客户端将其格式化以供显示。所以答案可能是,你应该在你的客户端处理它。
然而,time
可以选择具有指定的小数秒标度。如果省略,默认值为7
- 100ns。如果你不想要任何小数秒,你可以使用0
。
...
Cast(DateAdd( ss,AVG(DateDiff( ss, '00:00:00', (A.ReceivedWhen - A.CallStartWhen))), '00:00:00' ) as time(0)) as 'avg duration'
...
您也可以将其转换为varchar
并为其应用样式。使用convert()
这样做。根据"Date and Time Styles"部分的描述,8
- “hh:mi:ss” - 似乎是你想要的。
...
convert(varchar, Cast(DateAdd( ss,AVG(DateDiff( ss, '00:00:00', (A.ReceivedWhen - A.CallStartWhen))), '00:00:00' ) as time), 8) as 'avg duration'
...