表中有很多记录,其中一个字段为DATE类型
想获取DATE中时间与现在时间最接近的那条记录。
SQL语句该如何写呢?
多谢各位兄弟了...

解决方案 »

  1.   

    select * from emp order by to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') desc;
    排序一下,就行了。
      

  2.   

    select * from emp order by to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') desc;
    排序
      

  3.   

    用>=或者<= 加排序后,取rownum=1的
      

  4.   


    --假设表名为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;
      

  5.   

    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;
      

  6.   

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

  7.   


    select *
    from (select * from tb order by sysdate-时间字段)
    where rownum<=1