数据库里面有个时间字段datetime
2011-8-22 00:00:00
2011-8-22 00:00:21
2011-8-22 00:00:32
2011-8-22 00:00:40
2011-8-22 00:01:00
...
2011-8-22 23:59:59我希望每次把间隔30秒的数据取出来,该如何做呢?

解决方案 »

  1.   


    select *
    from tb
    where datediff(ss,[datetime],'2011-8-22 00:00:00')%30=0
      

  2.   

    select * from tab a,tab b
    where datediff(second,a.时间字段,b.时间字段) = 30
      

  3.   


     WHERE DATEDIFF(ss,dt1,dt2)=30
      

  4.   

    select
       a.*
    from
       tb a,tb b
    where
       DATEDIFF(ss,a.col,b.col)=30
    and
       CONVERT(varchar(10),a.col,120)=CONVERT(varchar(10),b.col,120)
      

  5.   


    select *
    from tb
    where [datetime] between '2011-8-22 00:00:00' and dateadd(ss,30,'2011-8-22 00:00:00')
      

  6.   

    select *from 表 where
     时间字段< (select dateadd(ss,30,开始时间)) and 时间字段>= 开始时间
      

  7.   


    select * from T awhere exists(select 1 from T b where a.id=b.id+1 and datediff(ss,b.date,a.date)=30)---id为自增字段,同一列date比较
      

  8.   

    定义变量,循环一下!declare @time datetime
    while ...
    begin
    select *
    from tb
    where [datetime] between @time and dateadd(ss,30,@time)
    --...处理数据
    set @time=dateadd(ss,30,@time)
    end;