例如在表中数据如下,我需要查询从19:00:00开始,每隔3秒钟的数据,应该如何写sql语句?谢谢!      date             Value
2009-2-16 19:43:35 1
2009-2-16 19:43:36 2
2009-2-16 19:43:37 3
2009-2-16 19:43:38 4
2009-2-16 19:43:39 5
2009-2-16 19:43:40 6
2009-2-16 19:43:41 7
2009-2-16 19:43:42 8
2009-2-16 19:43:43 9
2009-2-16 19:43:44 10
2009-2-16 19:43:45 11
2009-2-16 19:43:46 12
2009-2-16 19:43:47 13
2009-2-16 19:43:48 14
2009-2-16 19:43:49 15
2009-2-16 19:43:50 16
2009-2-16 19:43:51 17
2009-2-16 19:43:52 18
2009-2-16 19:43:53 19
2009-2-16 19:43:54 20
2009-2-16 19:43:55 21
2009-2-16 19:43:56 22
2009-2-16 19:43:57 23
2009-2-16 19:43:58 24
2009-2-16 19:43:59 25
2009-2-16 19:43:60 26
2009-2-16 19:43:61 27
2009-2-16 19:43:62 28
2009-2-16 19:43:63 29
2009-2-16 19:43:64 30
2009-2-16 19:43:65 31
2009-2-16 19:43:66 32
2009-2-16 19:43:67 33
2009-2-16 19:43:68 34
2009-2-16 19:43:69 35
2009-2-16 19:43:70 36
2009-2-16 19:43:71 37
2009-2-16 19:43:72 38
2009-2-16 19:43:73 39
2009-2-16 19:43:74 40

解决方案 »

  1.   

    你是要每隔3秒执行一次?那建Job啊。
      

  2.   

    [code=SQL]declare @tb table(dt datetime,px int)
    declare @date datetime,@i int
    set @date='2008-01-01 19:00:00'
    set @i=0
    while @i<120
    begin
    insert into @tb select dateadd(ss,@i,@date),@i
    set @i=@i+1
    end
    select * from @tb
    dt px
    2008-01-01 19:00:00.000 0
    2008-01-01 19:00:01.000 1
    2008-01-01 19:00:02.000 2
    2008-01-01 19:00:03.000 3
    2008-01-01 19:00:04.000 4
    2008-01-01 19:00:05.000 5
    ...[/code]
      

  3.   

    select dateadd(ss,px,'2008-01-01 19:00:00') as dt,px
    from (
    select row_number() over(order by a.object_id) as px
    from sys.objects a ,sys.objects b
    )tdt px
    2008-01-01 19:00:01.000 1
    2008-01-01 19:00:02.000 2
    2008-01-01 19:00:03.000 3
    2008-01-01 19:00:04.000 4
    2008-01-01 19:00:05.000 5
    2008-01-01 19:00:06.000 6
    ...借用临时表,自己控制top 就行了
      

  4.   

    谢谢pl_mm,如果dt的尾数不一致,如
    19:00:01.002
    19:00:02.023
    19:00:03.015
    ……
    这样会影响结果吗》?
      

  5.   

    楼主可以控制dataadd里面的参数啊