Oracle 数据库生成2021年节假日表SQL

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:26   1937   0

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));

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP