Sql 计算一定时间间隔内的平均值
我有一个每30分钟写入一次值的表 我想计算几天内特定时间段的平均值Sql 计算一定时间间隔内的平均值,sql,sql-server,tsql,average,Sql,Sql Server,Tsql,Average,我有一个每30分钟写入一次值的表 我想计算几天内特定时间段的平均值 创建表[dbo]。[表1]( [numreq][int]NULL, [rangetime][nvarchar](300)空 )在[小学] 插入[dbo]。[表1]值('2','2019-03-10 12:00:00.000')) 插入[dbo]。[表1]值('3','2019-03-10 12:30:00.000') 插入[dbo]。[表1]值('4','2019-03-10 13:00:00.000') 插入[dbo]。[表
创建表[dbo]。[表1](
[numreq][int]NULL,
[rangetime][nvarchar](300)空
)在[小学]
插入[dbo]。[表1]值('2','2019-03-10 12:00:00.000'))
插入[dbo]。[表1]值('3','2019-03-10 12:30:00.000')
插入[dbo]。[表1]值('4','2019-03-10 13:00:00.000')
插入[dbo]。[表1]值('5','2019-03-10 13:30:00.000')
插入[dbo]。[表1]值('6','2019-03-11 12:00:00.000')
插入[dbo]。[表1]值('7','2019-03-11 12:30:00.000')
插入[dbo]。[表1]值('8','2019-03-11 13:00:00.000')
插入[dbo].[表1]值('9','2019-03-11 13:30:00.000')
您可以使用cast()
仅解析时间:
select avg(numreq), cast(rangetime as time) as rangetime
from [#TABLE_1] t
group by cast(rangetime as time);
如果rangetime
没有所需的类型,则可以使用substring()
:
按日期时间字段的时间部分选择并分组。有关如何执行此操作,请参见标记的副本。
substring(rangetime, 12, len(rangetime))