本文共 1450 字,大约阅读时间需要 4 分钟。
创建日历表,并写入数据
-- 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_week from(select to_date('20170101','yyyymmdd') + level - 1 as everyDay from dual connect 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 tdate from dual connect 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
转载地址:http://xrdzz.baihongyu.com/