declare dtFrom date; begin dtFrom := to_date('2013-01-01','yyyy-mm-dd'); for a in 1..(Add_months(dtFrom, 48)-dtFrom) loop insert into XPTOOLSTIMEDIMENSION select TIMESEQID.Nextval, dtFrom + a - 1 日期, to_char(dtFrom + a - 1, 'dy') 星期, to_char(dtFrom + a - 1, 'mm') 月份, to_char(dtFrom + a - 1, 'yyyy') 年份, to_number(to_char(dtFrom + a - 1, 'dd')) 号, to_number(to_week_by_year(dtFrom + a - 1)) 周, to_number(to_char(dtFrom + a - 1, 'mm')) 月, case when to_number(to_char(dtFrom + a - 1, 'mm')) in (1, 2, 3) then 'Q1' when to_number(to_char(dtFrom + a - 1, 'mm')) in (4, 5, 6) then 'Q2' when to_number(to_char(dtFrom + a - 1, 'mm')) in (7, 8, 9) then 'Q3' when to_number(to_char(dtFrom + a - 1, 'mm')) in (10, 11, 12) then 'Q4' end as Qt,'' as 季度 from dual; end loop; end;