select decode(sign(day-7),1,day-7,day) day from (
SELECT to_number(to_char(Next_day(to_date('200411','yyyymm'),'monday'),'dd')) day FROM dual
)这个SQL得到的是日.
200411换上你要输入的年月就可以了

解决方案 »

  1.   

    select trunc(sysdate,'d')-6 from dual
      

  2.   

    假设是2004年10月份:
    SELECT Next_day(to_date('2004-10','yyyy-mm'),2) vaule FROM DUAL;
      

  3.   

    AustinLei(蜀山棋侠) 
    正解^_^
      

  4.   

    AustinLei(蜀山棋侠) 得到的是第二个星期一,不信输入200411试试
      

  5.   

    SELECT Next_day(to_date('2004-11','yyyy-mm')-1,'MONDAY') vaule FROM DUAL;
      

  6.   

    SQL> select sysdate,last_day(sysdate), next_day(add_months(last_day(sysdate),-1),2) from dual;SYSDATE     LAST_DAY(SYSDATE) NEXT_DAY(ADD_MONTHS(LAST_DAY(S
    ----------- ----------------- ------------------------------
    2004-11-12  2004-11-30 14:18: 2004-11-1 14:18:07你可以将sysdate换乘你要的日期! last_day()求出你给日起那个月最后一天,add_months(last_day(sysdate),-1)算出上个月的最后一天,而next_day(换算的日期,2)算出换算的日期后面紧跟的周一的日子.....