根据得到今天的日期sysdate,求出上个月1号00:00:00秒
   如:今天是20100703  要求出的结果是20100601000000 包括闰年闰月在内

解决方案 »

  1.   

    select to_date(to_char(add_months(sysdate,-1),'yyyymm'),'yyyymm') from dual
      

  2.   

    或直接后边连接上'01000000'
    select to_char(add_months(sysdate,-1),'yyyymm')||'01000000' from dual
      

  3.   

    先trunc再add也是可以的。。
    select add_months(trunc(sysdate,'MONTH'),-1) from dual;
      

  4.   

    SQL> edi
    已写入 file afiedt.buf  1* select to_char(trunc((sysdate-interval '1' month),'month'),'yyyymmddhh24miss') from dual
    SQL> /TO_CHAR(TRUNC(
    --------------
    20100601000000
    SQL>  select to_char(add_months(sysdate,-1),'yyyymm')||'000000' from dual;TO_CHAR(ADD_
    ------------
    201006000000
      

  5.   


    上面的第二个改下
    SQL> edi
    已写入 file afiedt.buf  1*  select to_char(trunc(add_months(sysdate,-1),'month'),'yyyymmdd')||'000000' from dual
    SQL> /TO_CHAR(TRUNC(
    --------------
    20100601000000
      

  6.   


    select to_char( add_months(trunc(sysdate, 'mm'), -1), 'yyyymmdd' ) ||'000000' from dual;20100601000000
      

  7.   

    select to_char(add_months(trunc(sysdate,'mm'),-1),'yyyymmddhh24miss') from dual;