如有两个参数startDate(开始时间),endDate(结束时间)
一旦传入两个参数,sql如何可以查出每个月份,
例如startDate是20150106,endDate是20150827,
如何查询出来数据要输出每个月份,即1,2,3,4,5,6,7,8这个月份,我要取出月份做计算用的,请问这个怎么做?

解决方案 »

  1.   

    select to_date('201501','yyyymm') + rownum - 1 from dual 
    connect by rownum <= months_between(to_date('201508','yyyymm'),to_date('201501','yyyymm'))+1
      

  2.   

    select add_months(to_date('201501','yyyymm') , rownum - 1) from dual 
    connect by rownum <= months_between(to_date('201508','yyyymm'),to_date('201501','yyyymm'))+1
      

  3.   

    SQL> select extract(month from to_date('201501','yyyymm'))+level-1
      2  from dual
      3  connect by level <= months_between(to_date('201508','yyyymm'),to_date('201501','yyyymm'))+1;EXTRACT(MONTHFROMTO_DATE('201501','YYYYMM'))+LEVEL-1
    ----------------------------------------------------
                                                       1
                                                       2
                                                       3
                                                       4
                                                       5
                                                       6
                                                       7
                                                       8