表的结构如下:
A
ID  Num AddDate
1    5    2008-03-10 9:26:20
2    2     2008-03-10 9:26:22
3    2    2008-03-10 9:28:20
4    2    2008-03-15 10:26:20
5    6    2008-03-15  10:26:22  
查询结果
1    5    2008-03-10 9:26:20
2    2     2008-03-10 9:26:22
4    2    2008-03-15 10:26:20
5    6    2008-03-15  10:26:22  
我想从表中查询出 两条 adddate 时间在两秒以内的 数据

解决方案 »

  1.   

    --建立测试环境
    set nocount on
    create table test(ID varchar(20),Num varchar(20),AddDate varchar(20))
    insert into test select '1','5','2008-03-10 9:26:20'
    insert into test select '2','2','2008-03-10 9:26:22'
    insert into test select '3','2','2008-03-10 9:28:20'
    insert into test select '4','2','2008-03-15 10:26:20'
    insert into test select '5','6','2008-03-15 10:26:22'
    go
    --测试
    select * from test a
    where exists(select 1 from test where id<>a.id 
    and abs(datediff(s,a.AddDate,AddDate))<=2)
    --删除测试环境
    drop table test
     set nocount off/*
    1 5 2008-03-10 9:26:20
    2 2 2008-03-10 9:26:22
    4 2 2008-03-15 10:26:20
    5 6 2008-03-15 10:26:22
    */
      

  2.   

    用datediff()函数
    具体用法查一下吧。
      

  3.   

    SELECT a.id,a.num,a.adddate
    FROM a, a AS a_1 where (DateDiff("s",a.adddate,a_1.adddate)<=2 and DateDiff("s",a.adddate,a_1.adddate)>=-2) and a.id<>a_1.id order by a.adddate
      

  4.   

    abs(datediff(s,a.AddTime,AddTime))<=2
      

  5.   


    jinjazz  的写法正确的!
    以前只是用exists 进行判断,exists 子查询还不是很理解
    弱弱的问一句:jinjazz 这些代码是在sql 查询分析器 里写的吗,还是有什么方便点的软件啊!