select to_char(to_date('2000-01-01','yyyy-mm-dd')+(rownum-1),'yyyy-mm-dd') 日期 from user_objects where rownum<367 and to_date('2000-01-01','yyyy-mm-dd')+(rownum-1)<to_date('2001-01-01','yyyy-mm-dd');
你只要给出'2000-01-01'中的2000和后面的'2001-01-01'中的2001其实就是(2000+1)就可以了。

解决方案 »

  1.   

    季度和月可以在这上面扩展如:select distinct to_char(日期,'q  ') 季度 from(
    select to_date('2000-01-01','yyyy-mm-dd')+(rownum-1) 日期 from user_objects where rownum<367 and to_date('2000-01-01','yyyy-mm-dd')+(rownum-1)<to_date('2001-01-01','yyyy-mm-dd')
    );select distinct to_char(日期,'mm') 月 from(
    select to_date('2000-01-01','yyyy-mm-dd')+(rownum-1) 日期 from user_objects where rownum<367 and to_date('2000-01-01','yyyy-mm-dd')+(rownum-1)<to_date('2001-01-01','yyyy-mm-dd')
    );
      

  2.   

    select to_char(sysdate,'yyyy') from dual;
    select to_char(sysdate,'q') from dual;
    select to_char(sysdate,'mm') from dual;
      

  3.   

    你还不理解我的意思
    我的意思是可以一次性输出下列列表,而不是一条一条的搞
    DATE_ID DATE_NAME MONTH_ID MONTH_NAME QUARTERID QUARTER_NAME YEAR_ID YEAR_NAME
    20020925 2002年09月25日 200209 2002年09月 Q3.2002 2002年第3季度 2002 2002年
    20020926 2002年09月26日 200209 2002年09月 Q3.2002 2002年第3季度 2002 2002年
    20020927 2002年09月27日 200209 2002年09月 Q3.2002 2002年第3季度 2002 2002年
    20020928 2002年09月28日 200209 2002年09月 Q3.2002 2002年第3季度 2002 2002年
    20020929 2002年09月29日 200209 2002年09月 Q3.2002 2002年第3季度 2002 2002年
    20020930 2002年09月30日 200209 2002年09月 Q3.2002 2002年第3季度 2002 2002年
    20021001 2002年10月01日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021002 2002年10月02日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021003 2002年10月03日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021004 2002年10月04日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021005 2002年10月05日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021006 2002年10月06日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021007 2002年10月07日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021008 2002年10月08日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021009 2002年10月09日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021010 2002年10月10日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021011 2002年10月11日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021012 2002年10月12日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021013 2002年10月13日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021014 2002年10月14日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021015 2002年10月15日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021016 2002年10月16日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021017 2002年10月17日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021018 2002年10月18日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021019 2002年10月19日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021020 2002年10月20日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021021 2002年10月21日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021022 2002年10月22日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021023 2002年10月23日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021024 2002年10月24日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
    20021025 2002年10月25日 200210 2002年10月 Q4.2002 2002年第4季度 2002 2002年
      

  4.   

    select 
    to_char(日期,'yyyymmdd') DATE_ID,to_char(日期,'yyyy')||'年'||to_char(日期,'mm')||'月'||to_char(日期,'dd')||'日' DATE_NAME,
    to_char(日期,'yyyymm') MONTH_ID,to_char(日期,'yyyy')||'年'||to_char(日期,'mm')||'月' MONTH_NAME,
    'Q'||to_char(日期,'q.yyyy') QUARTERID,to_char(日期,'yyyy')||'年第'||to_char(日期,'d')||'季度' QUARTERID_NAME,
    to_char(日期,'yyyy') YEAR_ID,to_char(日期,'yyyy')||'年' YEAR_NAME
     from(
    select to_date('2000-01-01','yyyy-mm-dd')+(rownum-1) 日期 from user_objects where rownum<367 and to_date('2000-01-01','yyyy-mm-dd')+(rownum-1)<to_date('2001-01-01','yyyy-mm-dd')
    );