sql-server-2008 - T-SQL计算平均时间

标签 sql-server-2008 tsql time integer dataformat

我在计算平均时间时遇到问题。
就是这种情况:
我有多行,每行中都有时间格式的数据
所以我需要计算所有行的平均时间,并将其与行数相乘,但是数据格式当然存在问题,因为我需要将时间与整数相乘

有人可以帮我一些建议吗?
n
这是一些数据:

times
00:00:00.7400000
00:00:01.1870000
00:00:00.6430000
00:00:00.6100000
00:00:12.9570000
00:00:01.1000000
00:00:00.7400000
00:00:00.5300000
00:00:00.6330000
00:00:01.6000000
00:00:02.6200000
00:00:01.0300000
00:00:01.9630000
00:00:00.9800000
00:00:01.0170000
00:00:00.7600000
00:00:00.7130000
00:00:00.9730000
00:00:01.0000000
00:00:01.0530000
00:00:02.9400000
00:00:00.8200000
00:00:00.8400000
00:00:01.1800000
00:01:25.8230000
00:00:01.0000000
00:00:00.9700000
00:00:01.2930000
00:00:01.3270000
00:00:13.5570000
00:00:19.3170000
00:00:58.2730000
00:00:01.6870000
00:00:18.7570000
00:00:42.8570000
00:01:12.3770000
00:00:01.2170000
00:00:09.9470000
00:00:01.4730000
00:00:00.9030000
00:00:01.0070000
00:00:01.1100000
00:00:01.6270000
00:00:05.0570000
00:00:00.6570000
00:00:00.7900000
00:00:03.2930000
00:00:00.8600000
00:00:01.0330000
00:00:00.9300000
00:00:00.8730000
00:00:00.9600000
00:00:00.8070000
NULL


因此,根据此数据,需要平均时间或/和该数据的总和

最佳答案

您应该能够使用类似于以下内容的东西:

select 
  cast(cast(avg(cast(CAST(times as datetime) as float)) as datetime) as time) AvgTime,
  cast(cast(sum(cast(CAST(times as datetime) as float)) as datetime) as time) TotalTime
from yourtable;


请参见SQL Fiddle with Demo

这样会将times数据转换为datetime,然后转换为float,以便获得avg / sum,然后将值转换回datetime,最后转换为time

关于sql-server-2008 - T-SQL计算平均时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15349586/

相关文章:

c# - WPF Datagrid-自动刷新

sql - 如果一个特定列的小数部分不为 0,则 T-SQL 选择行

ios - 如何快速计算两个日期之间的时间(分钟)?

java - 在android中比较日期与毫秒

sql - ADO.net 是仅在指定的存储过程调用后返回结果,还是等到所有触发器执行完毕才返回结果?

string - 如何从字符串中删除任何尾随数字?

sql-server - SQL Server 中有用的非系统过程

sql - 检索每个客户的最新记录

tsql - 在T-SQL代码中创建数据库时,如何指定恢复模型(完整,简单或批量记录)?

javascript - 在 javascript/jquery 中格式化值