select [time]
 from tab 
 where [time] between timeStart and timeEnd
 and datediff([间隔时间的单位(年/月/日/时/分/秒)],timeStart,[time])%timeSpan=0
datediff()函数用法参考 http://msdn.microsoft.com/zh-cn/library/ms189794(v=sql.105).aspx

解决方案 »

  1.   


    select max(time) from tab where time <  timeSearch;
    上一条就是这样的上面的方法循环太多,想改成一条SQL命令
      

  2.   


    %timeSpan 不行,因为需要补数据.
    原始库中的数据
    2013-08-01 09:44:30|1|1.0
    2013-08-01 09:45:24|1|1.0
    2013-08-01 09:45:28|1|1.0
    2013-08-01 09:45:31|1|1.0
    2013-08-01 09:45:33|1|1.0
    2013-08-01 09:45:36|1|1.02013-08-01 09:45:00 按10分钟间隔查询
    2013-08-01 09:45:00|2013-08-01 09:44:30|1|1.0
    2013-08-01 09:55:00|2013-08-01 09:45:36|1|1.0
    2013-08-01 10:05:00|2013-08-01 09:45:36|1|1.0
    2013-08-01 10:15:00|2013-08-01 09:45:36|1|1.0
    2013-08-01 10:25:00|2013-08-01 09:45:36|1|1.0
    2013-08-01 10:35:00|2013-08-01 09:45:36|1|1.0
    不知道这样能不能说清楚了.
      

  3.   

    CREATE TABLE #temp([time] DATETIME, field1 INT, field2 FLOAT)
    INSERT #temp
    select '2013-08-01 09:44:30','1','1.0'union all
    select '2013-08-01 09:45:24','1','1.0'union all
    select '2013-08-01 09:45:28','1','1.0'union all
    select '2013-08-01 09:45:31','1','1.0'union all
    select '2013-08-01 09:45:33','1','1.0'union all
    select '2013-08-01 09:45:36','1','1.0'DECLARE @timeStart DATETIME, @timeEnd DATETIME
    SELECT @timeStart = '2013-08-01 09:45:00', @timeEnd = '2013-08-01 10:35:00'SELECT A.timePoint, B.* FROM
    (
    SELECT
    timePoint = DATEADD(minute, 10*number, @timeStart)
    FROM master..spt_values b
    WHERE type = 'p'
    AND DATEADD(minute, 10*number, @timeStart) <= @timeEnd
    ) A
    CROSS APPLY
    (
    SELECT TOP(1) *
    FROM #temp M
    WHERE M.[time] < A.timePoint
    ORDER BY M.[time] DESC
    ) B
    /*
    timePoint time field1 field2
    2013-08-01 09:45:00.000 2013-08-01 09:44:30.000 1 1
    2013-08-01 09:55:00.000 2013-08-01 09:45:36.000 1 1
    2013-08-01 10:05:00.000 2013-08-01 09:45:36.000 1 1
    2013-08-01 10:15:00.000 2013-08-01 09:45:36.000 1 1
    2013-08-01 10:25:00.000 2013-08-01 09:45:36.000 1 1
    2013-08-01 10:35:00.000 2013-08-01 09:45:36.000 1 1
    */
      

  4.   

    我用的是sqlite 上面的指令识别不了
      

  5.   

    朋友帮我搞定了,
    用的是left join...
      

  6.   

    楼主,能把你实现的sql分享一下不,谢谢