sql 同一列查询离某值最近的比他大的一个值

从图下表中随机取得一个日期时间,然后查出离这个日期时间最近的那个
比方我从表中取得2012-10-05 14:32:33.147这个时间,然后比这个日期时间大的有很多,我这边只想要比他大一点点的这个,离他最近的这个值2012-10-05 16:28:06.970

第1个回答  2012-10-26
select * from table shere dtDate >='2012-10-05 14:32:33.147' order by dtDate limit 2
返回的结果集中第二条记录就是你想要的,
如果觉得返回2天记录不方便的话,
在这个基础上再写一个子查询,返回一条记录就可以了
第2个回答  2012-10-26
1、查询大于给定时间的所有记录
2、按出发时间由小到大排序
3、取出第一行。
select * from s(select * from 表 where 出发时间>'2012-10-05 14:32:33.147‘ order by 出发时间)
where rownum<2;
第3个回答  2012-10-26
select top 1 时间列名 from(select * from 表名 where 时间列名>你取的那个值 order by 时间列)

纯手打 望采纳本回答被提问者采纳
第4个回答  2012-10-26
SELECT MIN(出发时间) FROM TABLE WHERE 出发时间>'2012-10-05 14:32:33.147‘
思路是取比它大的最小值
参考下
相似回答