创建日历表,并写入数据
-- Create tablecreate table tdate(DT DATE not null,YEAR number(4),MONTH VARCHAR2(4),DAY VARCHAR2(4),WEEK VARCHAR2(10),WEEKNUM VARCHAR2(4),XQ number(2),QR number(2),bourse_week VARCHAR2(4));insert into tdate t ( t.dt,t.year,t.month,t.day,t.week,t.weeknum,t.xq,t.qr,t.bourse_week)select trunc(everyDay) as dt,to_char(everyday,\'yyyy\') as yr,to_char(everyday,\'mm\') as mm,to_char(everyday,\'dd\') as dd,to_char(everyday,\'dy\') as dayofweek,/*ORACLE自定义的标准周*/to_char(everyday,\'WW\') as weeknum,/*该月的第几周*//*lpad(to_char(everyday,\'w\'),6) as monthOfWeek,*/to_char(everyday,\'d\') XQ,to_char(everyday,\'Q\') as qr,/*ISO的标准周,通常使用这个*/to_char(everyday,\'IW\') as bourse_weekfrom(select to_date(\'20170101\',\'yyyymmdd\') + level - 1 as everyDay from dualconnect by level <=(last_day(to_date(\'20220101\',\'yyyymmdd\')) - to_date(\'20170101\',\'yyyymmdd\') +1));SELECT * FROM (with x as(select add_months(trunc(sysdate, \'y\'), -12) + level - 1 tdatefrom dualconnect by level <=add_months(trunc(sysdate, \'y\'), 12) - trunc(sysdate, \'y\'))select tdate, to_char(tdate, \'day\'),rownum rn from x where to_char(tdate, \'day\') =\'星期五\' )where rn=20