ProcessTime: 00:00:00.0000012
RegexResolveTime: 00:00:00.0000421
MessageResolveTime: 00:00:00.0001269
FullProcessTime: 00:00:00.0001734好的,我有4列数据类型为Time(7)的数据。我需要获得这些单独列的所有条目的平均值,但是对于AVG操作符来说,Time(7)不是一个有效的类型!
如何获得Time(7)列的平均值?
我要补充的是,这些是时间跨度,而不是离散的时间点,即使SQL server认为它们是这样的!
发布于 2012-07-06 02:34:04
你不能平均时间,因为时间代表的是一个时间点,而不是一个持续时间。我推荐两种方法中的一种。
DECLARE @x TABLE (ProcessTime TIME(7));
INSERT @x VALUES ('00:00:00.0000012'), ('00:00:00.0000016');
SELECT DATEADD(NANOSECOND, AVG(DATEDIFF(NANOSECOND, '00:00:00.0000000', ProcessTime)),
CONVERT(TIME, '00:00:00.0000000'))
FROM @x;结果:
00:00:00.0000014但你不觉得这是错的吗?如果您没有存储时间点,并且您只关心持续时间,请存储持续时间。在显示时,您始终可以将其格式化为时间。
https://stackoverflow.com/questions/11350230
复制相似问题