在MS SQL中计算平均时间

时间:2015-11-30 08:26:57

标签: sql-server

我有一个日期时间表,我需要找到平均时间。我试过CASE语句,但它给了我一个错误操作数数据类型时间对于avg操作符无效。

select * from datestime

dates
2015-11-23 15:05:40.923
2015-11-23 15:05:43.610
2015-11-23 15:05:45.790
2015-11-23 15:05:48.293

首先,我将列分成两列日期和时间

"select convert(date,dates,104) as date,convert(time,dates,108) as time from datestime"

然后使用CASE计算平均时间。

;with avgtime as(
select convert(date,dates,104) as date,convert(time,dates,108) as time from datestime)
select avg(time) from avgtime

请帮我找到平均时间

1 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作获得范围内开始/结束日期之间的中点:

declare @start datetime = '2015-12-01T10:00:00'
declare @finish datetime = '2015-12-01T11:00:00'

print dateadd( second, ( datediff( second, @start, @finish ) / 2 ), @start )