如何获取最接近当前时间的记录?

这不是鸭头 2010-11-28 09:12:08
表中有很多记录,其中一个字段为DATE类型
想获取DATE中时间与现在时间最接近的那条记录。
SQL语句该如何写呢?
多谢各位兄弟了...
...全文
129 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolkisses 2010-11-29
  • 打赏
  • 举报
回复
当前时间是可变的,每一次查询就是一次全表扫描,没更好的需求解决方案?
Defonds 2010-11-29
  • 打赏
  • 举报
回复
对,用加减法
luoyoumou 2010-11-29
  • 打赏
  • 举报
回复
select * from tb where abs(date_column-sysdate)=
(select abs(min(date_column-sysdate)) from tb);
lfm613625 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gelyon 的回复:]
SQL code

SELECT * FROM (
SELECT a.*,Row_Number()over(ORDER BY Abs(SYSDATE-date_col)) rn FROM tab a
)
WHERE rn=1
[/Quote]


+1
gelyon 2010-11-29
  • 打赏
  • 举报
回复

SELECT * FROM (
SELECT a.*,Row_Number()over(ORDER BY Abs(SYSDATE-date_col)) rn FROM tab a
)
WHERE rn=1
beita258 2010-11-29
  • 打赏
  • 举报
回复
select * from (
select * from tb where date <= sysdate order by date desc) where rownum=1
dawugui 2010-11-28
  • 打赏
  • 举报
回复
select * from tb where rownum = 1 and date < sysdate order by date desc

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧