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

解决方案 »

  1.   

    select * from tb where rownum = 1 and date < sysdate order by date desc
      

  2.   

    select * from (
    select * from tb where date <= sysdate order by date desc) where rownum=1
      

  3.   


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

  4.   

    select * from tb where abs(date_column-sysdate)=
          (select abs(min(date_column-sysdate)) from tb);