表名:AA 
表字段: 进入时间  姓名 
第一次检索:select * from AA where 姓名='张三'
第二次检索:按照第一次检索出来的“进入时间”将时间前后各加上1分钟,以不同时间段为条件检索表AA.即以检索出来的每条信息的进入时间为基点,查询每条信息对应的2分钟内的所有数据。
如果能一条语句完成更好。谢谢!

解决方案 »

  1.   

    select * from AA 
    where [进入时间] >=(select top 1 dateadd(n,-1,[进入时间]) from AA where [姓名]='张三')
    and [进入时间] <=(select top 1 dateadd(n,1,[进入时间]) from AA  where [姓名]='张三')
      

  2.   

    select * from AA as X
    where exists ( select 1 from AA where 姓名='张三' and X.进入时间 between dateadd(n,-1,进入时间) and dateadd(n,1,进入时间) )
      

  3.   

    select * from AA as X
    where exists ( select 1 from AA where 姓名='张三' and X.进入时间 between dateadd(n,-1,进入时间) and dateadd(n,1,进入时间) )
    and datepart(minute,进入时间)>5