SQL 查询间隔时间大于60s的所有数据

 CREATE TABLE test
(
      id int PRIMARY KEY IDENTITY(1,1),
      dealerId int,
      actiontime datetime,
      actiontype int
)
 
 
insert into dbo.Test
select '1','2013-6-24 12:30:00',1
union all
select '1','2013-6-24 12:30:30',1
union all
select '1','2013-6-24 12:31:00',1
union all
select '1','2013-6-24 12:32:00',1
 
--select * from dbo.Test
--创建临时表
if object_id('tempdb..#temp') is not null
Begin
    drop table #temp
   --select * from #temp
End
create table #temp
(
      rownum int primary key,
      id int ,
      dealerid nvarchar(10),
      actiontime datetime,
      actiontype int   
)
--读入数据到临时表
insert into #temp
select ROW_NUMBER() over(order by id) rownum,* from dbo.Test
where dealerid = '1' and actiontype = 1
 
SELECT * FROM #temp
--遍历临时表数据
declare @i int = 2,@lgh int = (select COUNT(*) from #temp),@actiontime datetime,@actiontime2datetime
 
while @i <= @lgh
begin
      select @actiontime = actiontime from #temp where rownum = @i - 1
      select @actiontime2 = actiontime from #temp where rownum = @i    
      if(ABS(DATEDIFF(s,@actiontime,@actiontime2)) < 60) delete from #temp where rownum =@i                 
      set @i = @i + 1
end
 
select * from #temp

转载于:https://www.cnblogs.com/Amity/p/3153107.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值