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

这不是鸭头 2010-11-28 09:12:15
表中有很多记录,其中一个字段为DATE类型
想获取DATE中时间与现在时间最接近的那条记录。
SQL语句该如何写呢?
多谢各位兄弟了...
...全文
337 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Defonds 2010-11-28
  • 打赏
  • 举报
回复
用系统时间
chenlinfei2010 2010-11-28
  • 打赏
  • 举报
回复
select x.* from
(select e.*,row_number()over(order by hiredate desc) sn
from emp e
where e.hiredate<=sysdate) x
where x.sn=1;
chenlinfei2010 2010-11-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qq646748739 的回复:]
引用楼主 arpnet99 的回复:
表中有很多记录,其中一个字段为DATE类型
想获取DATE中时间与现在时间最接近的那条记录。


SQL code

--假设表名为tb,时间字段为dt_time,则:
select x.*
from(select t.*,row_number()over(order by dt_time desc) rn
from ……
[/Quote]

正解
碧水幽幽泉 2010-11-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 arpnet99 的回复:]
表中有很多记录,其中一个字段为DATE类型
想获取DATE中时间与现在时间最接近的那条记录。
[/Quote]

--假设表名为tb,时间字段为dt_time,则:
select x.*
from(select t.*,row_number()over(order by dt_time desc) rn
from tb t
where t.dt_time <= sysdate
)x
where x.rn = 1;
永生天地 2010-11-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chenlinfei2010 的回复:]
select * from emp order by to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') desc;
排序
[/Quote]
用>=或者<= 加排序后,取rownum=1的
chenlinfei2010 2010-11-28
  • 打赏
  • 举报
回复
select * from emp order by to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') desc;
排序
chenlinfei2010 2010-11-28
  • 打赏
  • 举报
回复
select * from emp order by to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') desc;
排序一下,就行了。
心中的彩虹 2010-11-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wkc168 的回复:]
引用楼主 arpnet99 的回复:
表中有很多记录,其中一个字段为DATE类型
想获取DATE中时间与现在时间最接近的那条记录。
SQL语句该如何写呢?
多谢各位兄弟了...

select *
from (select * from tb order by 时间字段 desc)
where rownum<=1
[/Quote]

select *
from (select * from tb order by sysdate-时间字段)
where rownum<=1
心中的彩虹 2010-11-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 arpnet99 的回复:]
表中有很多记录,其中一个字段为DATE类型
想获取DATE中时间与现在时间最接近的那条记录。
SQL语句该如何写呢?
多谢各位兄弟了...
[/Quote]
select *
from (select * from tb order by 时间字段 desc)
where rownum<=1

17,377

社区成员

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

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