如题

解决方案 »

  1.   

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

  2.   

      select trunc(add_months(last_day(sysdate),-2)+1) from dual;
      

  3.   

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

  4.   

    select to_char(trunc(add_months(last_day(sysdate), -2) + 1), 'yyyy-MM-dd hh24:mi:ss') "上月第一天",
           to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-MM-dd hh24:mi:ss') "本月第一天",
           to_char(last_day(sysdate), 'yyyy-mm-dd  hh24:mi:ss') "本月最后一天"
    from dual;
      

  5.   

    顶一下
       oracle QQ群:54775466
               欢迎爱好者 一起入群探讨
      

  6.   

    取上个月的第一天的三种方法:select to_char(last_day(add_months(sysdate,-2))+1,'yyyy-mm-dd') from dual;
    select add_months(last_day(trunc(sysdate)),-2)+1 from dual;
    select trunc(trunc(sysdate, 'month') - 1, 'month') from dual;
      

  7.   

    不明白为什么要先减一个月再加一个月啊?select to_char(last_day(add_months(sysdate,-2))+1,'yyyy-mm-dd') from dual;
      

  8.   

    不明白为什么要先减两个月再加一个月啊?select to_char(last_day(add_months(sysdate,-2))+1,'yyyy-mm-dd') from dual;
      

  9.   

    SQL> select trunc(trunc(sysdate,'mm')-1,'mm') from dual;
     
    TRUNC(TRUNC(SYSDATE,'MM')-1,'M
    ------------------------------
    2010-8-1
     
    SQL> 
      

  10.   

    SELECT add_months(TRUNC(SYSDATE,'mm'),-1)
    FROM dual;我这个应该比较好理解点,先截取系统的月份,然后再加-1月,就是上个月第一天了。。
      

  11.   

    SELECT add_months(TRUNC(SYSDATE,'mm'),-1)
    FROM dual;
    支持1楼
      

  12.   

    select to_char(last_day(add_months(sysdate,-2))+1,'yyyy-mm-dd') from dual;