获取最接近八点的时间 范围 7-9

declare @table table(tm datetime)

insert into @table values('2013-05-07 07:55:00')
insert into @table values('2013-05-07 07:57:00')

insert into @table values('2013-05-07 08:21:00')
insert into @table values('2013-05-07 07:22:00')


select top 1 case when
(select datediff(mi,max(tm),convert(datetime,'2013-05-07 08:00:00',120)) from @table where datename(hour,tm) >= 7 and datename(hour,tm) < 8) -
(select datediff(mi,convert(datetime,'2013-05-07 08:00:00',120),min(tm)) from @table where datename(hour,tm) >= 8 and datename(hour,tm) < 9) >0
then (select min(tm) from @table where datename(hour,tm) >= 8 and datename(hour,tm) < 9) else
(select max(tm) from @table where datename(hour,tm) >= 7 and datename(hour,tm) < 8) end from @table

posted @ 2014-05-13 17:39  singelMan  阅读(175)  评论(0编辑  收藏  举报