1,通过sql获取近30年的年份
比如获取 1980,1981......2009,2010。2,通过sql获取所有月份
比如获取 01,02,03,04....123,获取所有小时点
比如获取 00,01,02,03,......22,23不要用select '00' from dual union all select '02' from dual.....这种sql。需要别的比较简单的sql,不知道能否搞的定啊!

解决方案 »

  1.   

    select to_char(sysdate - (interval '1' year * (level - 1)),'yyyy'), level
    from dual
    connect by level <= 30
      

  2.   

    select to_char(trunc(sysdate,'yyyy') + (interval '1' month * (level - 1)),'mm'), level
    from dual
    connect by level <= 12
      

  3.   

    select to_char(trunc(sysdate,'dd') + (interval '1' hour * (level - 1)),'hh24'), level
    from dual
    connect by level <= 24
      

  4.   

    SELECT distinct to_char(add_months(sysdate,-12*30)+rownum,'yyyy') dt
      FROM dual
      CONNECT BY ROWNUM<=add_months(SYSDATE,12*30)-add_months(SYSDATE,-12*30)
    前后30年的年份....完全不知道有什么用....