|
Oracle 数据库生成2021年节假日表SQL
-- day_typ 0:工作日 1:休息日 2:节假日
insert into t_pub_wkday
(wk_day, day_typ)
select wk_day,
case
when wk_day in ('20210101',
'20210102',
'20210103',
'20210211',
'20210212',
'20210213',
'20210214',
'20210215',
'20210216',
'20210217',
'20210403',
'20210404',
'20210405',
'20210501',
'20210502',
'20210503',
'20210504',
'20210505',
'20210612',
'20210613',
'20210614',
'20210919',
'20210920',
'20210921',
'20211001',
'20211002',
'20211003',
'20211004',
'20211005',
'20211006',
'20211007') then
'2'
when wk_day in ('20210207',
'20210220',
'20210425',
'20210508',
'20210918',
'20210926',
'20211009') then
'0'
else
day_typ
end day_typ
from (select wk_day,
case
when trim(to_char(to_date(wk_day, 'YYYYMMDD'), 'day')) in
('saturday', 'sunday') then
'1'
else
'0'
end day_typ
from (select to_char(to_date('20210101', 'yyyyMMdd') + rownum - 1,
'yyyymmdd') as wk_day
from dual
connect by rownum <=
trunc(to_date('20211231', 'yyyyMMdd') -
to_date('20210101', 'yyyyMMdd')) + 1));
|