问题描述: 
          参数:开始时间 , 结束时间 
         返回:开始时间到结束时间的所有时间  (格式跟参数格式一致)实例1:
       参数: 
             开始时间: 20091111 
             结束时间: 20091211
       返回
             20091111
             20091112
             20091113
             20091114
             。
             20091210
             20091211
实例2:
       参数: 
             开始时间: 200911 
             结束时间: 200912
       返回
             200911
             200912
实例3:
       参数: 
             开始时间: 2009 
             结束时间: 2010
       返回
             2009
             2010
小弟 先谢谢了各位高手了

解决方案 »

  1.   

    SELECT to_char(TO_DATE('20091111', 'yyyymmdd')+ LEVEL - 1,'YYYYMMDD')  AS DAYOFYEAR
                      FROM DUAL
                    CONNECT BY TO_DATE('20091111', 'yyyymmdd')+ LEVEL - 1 <= TO_DATE('20091211', 'yyyymmdd')
        你参考下
      

  2.   

    case end
    根据参数长度来判断
      

  3.   

    我总结了一下这方面的使用方法,你可以自己来学习一下,道理都是一样的:
    ----返回指定两个时间段的日期,使用to_date函数强制来利用日期做运算。
    SELECT to_char(TO_DATE('20091111', 'yyyymmdd')+ LEVEL - 1,'YYYYMMDD')  AS DAYOFYEAR
                      FROM DUAL
                    CONNECT BY TO_DATE('20091111', 'yyyymmdd')+ LEVEL - 1 <= TO_DATE('20091211', 'yyyymmdd');
        
    -----返回任意两个数之间的所有整数
    SELECT 1 + LEVEL - 1 FROM dual CONNECT BY 1 + LEVEL - 1 <= 100;----返回任意指点字符间的大写字符
    SELECT chr(ascii('A') + LEVEL - 1) dxzm
    FROM dual
    CONNECT BY ascii('A') + LEVEL - 1 <= ascii('Z');----返回任意指点字符间的大写字符
    SELECT chr(ascii('a') + LEVEL - 1) dxzm
    FROM dual
    CONNECT BY ascii('a') + LEVEL - 1 <= ascii('z');