sqlserver——按时间间隔对数据采样查询

原数据为每10秒写入一条新数据

查询历史记录时要求每间隔10分钟取一个样点,查过去10小时的数据

SQL语句:

declare @endDate datetime
declare @startDate datetime
set @endDate=(select max([monitorTime]) from  table_x  where columnA='条件')
set @startDate=DATEADD(minute,-600,@endDate)

select 
       [uuid]
      ,[columnA]
      , convert(varchar(16),monitorTime,120) as monitorTime
 from table_x a where columnA='条件' and  monitorTime>=@startDate and  datediff(MINUTE,monitorTime,@endDate)%10=0
 and not exists
 (
 select [uuid] from table_x b where columnA='条件' and  monitorTime>=@startDate and  datediff(MINUTE,monitorTime,@endDate)%10=0 
 and convert(varchar(16),a.monitorTime,120) = convert(varchar(16),b.monitorTime,120) 
 and a.monitorTime < b.monitorTime
 )
 order by monitorTime desc

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值