Sql 在转换、平均值和转换后移除毫秒

Sql 在转换、平均值和转换后移除毫秒,sql,sql-server,sql-server-2017,Sql,Sql Server,Sql Server 2017,嗯。经过研究,研究和更多的研究,我已经走到了这一步,我需要帮助我的最后一步 SELECT Cast(DateAdd( ss,AVG(DateDiff( ss, '00:00:00', (A.ReceivedWhen - A.CallStartWhen))), '00:00:00' ) as time) as 'avg duration' 我已经得到了我的ReceivedWhen和CallStartWhen之间的差异,将其平均并分组。没问题 我的“平均持续时间”是正确的,但它包含毫秒 00:

嗯。经过研究,研究和更多的研究,我已经走到了这一步,我需要帮助我的最后一步

SELECT Cast(DateAdd( ss,AVG(DateDiff( ss, '00:00:00', (A.ReceivedWhen - A.CallStartWhen))), '00:00:00' )  as time) as 'avg duration' 
我已经得到了我的ReceivedWhen和CallStartWhen之间的差异,将其平均并分组。没问题

我的“平均持续时间”是正确的,但它包含毫秒

00:01:43.0000000


如何删除毫秒数?

表达式的类型是
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
,并对其应用样式。习惯于这样做。从本节的描述来看,
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'
...

表达式的类型是
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
,并对其应用样式。习惯于这样做。从本节的描述来看,
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'
...

数据库是什么?类型是什么?MS SQL 2017如果这是您要问的。数据库是什么?类型?如果你问的是SQL 2017女士,那就说对了!谢谢@sticky咬了它!谢谢@sticky bit