数据表中有一个日期字段、时间字段及其他的字段。要查表中每天的小于且最接近1点钟的记录,如果0到1点没有记录的,则要求查上一天的离1点钟最接近的记录。注意得到的是要每一天的记录。

解决方案 »

  1.   

    给你个大概吧,剩下的自己写,没有看到你的数据declare @startdate datetime,@date datetime
    set @startdate='2008-10-1 1:0:0'
    declare cursor c1 for select date from tb
    open c1
    fetch c1 into @date
    while @@fetch_status =0
    begin
       select * from tb a
       where datediff(hh,@startdate,@date)=(select min(datediff(hh,@startdate,date)
                                            from tb
                                            where tb.主键=a.主键
                                                  group by year(date),month(date),day(date)
                                           )
       set @startdate=dateadd(day,1,@startdate)
    end
      

  2.   

    简单点理解就是查一天中最晚的那条记录,不过不是23:59:59最晚,而是要加上一个小时之后再比较最晚,如果是取23:59:59分最晚加个MAX就可以实现了。