如当天日期为2006-02-20,根据当天日期,我想得到的日期为2006-02-28 23:59:59

解决方案 »

  1.   

    SQL> select last_day(trunc(sysdate)) + .99999 from dual;LAST_DAY(TRUNC(SYSDATE))+.9999
    ------------------------------
    2006-2-28 23:59:59
      

  2.   

    select last_day(sysdate) from dual
      

  3.   

    SQL> select last_day(trunc(sysdate)) + 1 - 1/1440/60 from dual;LAST_DAY(TRUNC(SY
    -----------------
    20060228 23:59:59就是下一月第一天0点,再减去1秒
    SQL> SELECT 1 - 1/1440/60  FROM DUAL;1-1/1440/60
    -----------
     .999988426可以看出,楼上的有误差
      

  4.   

    to楼上:
    如果误差在允许范围外那我无话可说了,我给的只是最简单的方案,但是也足够满足楼主要求了,1/1440/60能精确表示一秒吗?也只不过是个近似值而已,1秒钟最精确写法应该是:interval '1' second