想求当前日期之前的六个月的month,在orcal中该怎么写。比如当前日期为20110620,我想得到前六个月的月份就是5,4,3,2,1,12。麻烦各位高手帮忙解答一下,万分感谢!

解决方案 »

  1.   

    select to_char(add_months(to_date('20110620','yyyymmdd'),-1*rownum),'mm') as mon from dual connect by rownum <=6;
      

  2.   


    SQL> select to_number(to_char(add_months(to_date('2011-06-20','yyyy-mm-dd'),-1*level),'mm')) d
      2  from dual
      3  connect by level<=6
      4  /
     
             D
    ----------
             5
             4
             3
             2
             1
            12
     
    6 rows selected
      

  3.   

    select to_number(to_char(add_months(to_date('2011-06-20','yyyy-mm-dd'),-1*level),'mm')) d from dual connect by level <=6