• 查询登陆时间间隔不超过5分钟的所有记录


    表内容如下
    -----------------------------
    ID            LogTime
    1            2008/10/10 10:00:00
    1            2008/10/10 10:03:00
    1            2008/10/10 10:09:00
    2      2008/10/10 10:10:00
    2      2008/10/10 10:11:00

    -----------------------------

    如何查询登陆时间间隔不超过5分钟的所有记录

     
    CREATE TABLE #t (id INT ,LogTime DATETIME) 
     
    INSERT INTO #t 
    SELECT 1,'2008/10/10 10:00:00
    UNION 
    SELECT 1,'2008/10/10 10:03:00
    UNION 
    SELECT 1,'2008/10/10 10:09:00
    UNION 
    SELECT 2 ,'2008/10/10 10:10:00
    UNION 
    SELECT 2 ,'2008/10/10 10:11:00'  
     
     
    SELECT  id , 
            logtime 
    FROM    ( SELECT    * , 
                        ( SELECT    DATEDIFF(n, a.LogTime, b.LogTime) 
                          FROM      ( SELECT    ROW_NUMBER() OVER ( ORDER BY id ) AS iid , 
                                                * 
                                      FROM      #t 
                                    ) B 
                          WHERE     a.iid = b.iid - 1 
                                    AND DATEDIFF(n, a.LogTime, b.LogTime) <= 5   -- 
                        ) AS diff 
              FROM      ( SELECT    ROW_NUMBER() OVER ( ORDER BY id ) AS iid , 
                                    * 
                          FROM      #t 
                        ) A 
            ) B 
    WHERE   diff IS NOT NULL 
  • 相关阅读:
    javascript window.Event对象
    sql 命令
    ASP.NET 2.0实现防止同一用户同时登陆
    设计模式(抽象工厂模式)
    javascript幻灯片
    javascript window.open
    c# 注册表操作
    大话英语
    oracle 插入、合并、查询、聚合操作
    guy,mistake
  • 原文地址:https://www.cnblogs.com/qanholas/p/1923356.html
Copyright © 2020-2023  润新知