给你个大概吧,剩下的自己写,没有看到你的数据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
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