• 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
  • 相关阅读:
    Apache工作原理
    Mysql主从复制
    Apache 工作模式
    Codeforces 932E Team Work
    【TJOI2018】教科书般的亵渎
    Codeforces 960G Bandit Blues
    斯特林数&斯特林反演
    【BZOJ4916】神犇与蒟蒻
    【BZOJ3944】Sum
    【BZOJ4805】欧拉函数求和
  • 原文地址:https://www.cnblogs.com/Amity/p/3153107.html
Copyright © 2020-2023  润新知