同一个id号的多条记录,把这些同一id号记录的时间字段相差小于5秒的记录,select出来,,
大家看看有什么高效的好方法。。

解决方案 »

  1.   

    用datediff(ss,上一个时间,本次时间)<=5来筛选那些间隔小于五秒的数据。
      

  2.   

    为何SELECT CAST('090909'  AS datetime)  是正常的,但是如下就错误了:
     SELECT CAST(a.ctime AS datetime) from  table1 a  where fpno='00102821'
    “从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。”ctime也是6位的字符串啊。
      

  3.   


         select *   
           from TB a    
             where exists (select * from TB b  where b.time > a.time and b.time < dateadd(ss,5,a.time))   
      

  4.   

    SELECT * FROM TB WHERE EXISTS (SELECT * FROM TB A WHERE ABS(DATEDIFF(SS,A.TIME,B.TIME))<5)
      

  5.   

    参照一下这个,对于能用JOIN的联接,尽量少用EXISTS和IN
    SELECT * FROM TB A 
    INNER JOIN TB B 
    ON A.ID=B.ID
    AND A.TIME<>B.TIME
    AND ABS(DATEDIFF(SS,A.TIME,B.TIME))<5