22,207
社区成员
发帖
与我相关
我的任务
分享
create table tb(dt datetime)
insert into tb select '2010-12-17 16:23:20'
insert into tb select '2010-12-17 17:23:20'
insert into tb select '2010-12-17 18:23:20'
insert into tb select '2010-12-17 19:23:20'
insert into tb select '2010-12-17 20:23:20'
insert into tb select '2010-12-17 21:23:20'
insert into tb select '2010-12-17 22:23:20'
insert into tb select '2010-12-17 23:23:20'
insert into tb select '2010-12-18 03:23:20'
insert into tb select '2010-12-18 05:23:20'
insert into tb select '2010-12-18 07:23:20'
insert into tb select '2010-12-18 09:23:20'
go
select top 10 * from tb
order by (case when left(dt,10)=left(getdate(),10) then datediff(ss,getdate(),dt) else datediff(ss,dt,getdate()) end)
go
drop table tb
/*
dt
-----------------------
2010-12-18 03:23:20.000
2010-12-18 05:23:20.000
2010-12-18 07:23:20.000
2010-12-18 09:23:20.000
2010-12-17 23:23:20.000
2010-12-17 22:23:20.000
2010-12-17 21:23:20.000
2010-12-17 20:23:20.000
2010-12-17 19:23:20.000
2010-12-17 18:23:20.000
(10 行受影响)
*/
select top 10 * from tb order by case when datediff(day,dt,gedate()) then 0 else 1 end, dt desc
select top 10 * from tb where dt<getdate() order by dt desc