【Oracle】使用Function计算去除周末及法定节假日天数

首先创建TEMP_WORK_DAY_2019存放2019年365天所有日期

create table TEMP_WORK_DAY_2019
(
  id       VARCHAR2(10),
  work_day VARCHAR2(20),
  code     VARCHAR2(10)
)
-- Add comments to the table 
comment on table TEMP_WORK_DAY_2019
  is '2019年365日工作日与节假日';
-- Add comments to the columns 
comment on column TEMP_WORK_DAY_2019.id
  is 'ID';
comment on column TEMP_WORK_DAY_2019.work_day
  is '日期';
comment on column TEMP_WORK_DAY_2019.code
  is '1:法定假日;0:工作日;3:周末';

然后插入2019年日期数据,code为该日期类型


insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('1', '2019-01-01', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('2', '2019-01-02', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('3', '2019-01-03', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('4', '2019-01-04', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('5', '2019-01-05', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('6', '2019-01-06', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('7', '2019-01-07', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('8', '2019-01-08', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('9', '2019-01-09', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('10', '2019-01-10', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('11', '2019-01-11', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('12', '2019-01-12', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('13', '2019-01-13', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('14', '2019-01-14', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('15', '2019-01-15', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('16', '2019-01-16', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('17', '2019-01-17', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('18', '2019-01-18', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('19', '2019-01-19', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('20', '2019-01-20', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('21', '2019-01-21', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('22', '2019-01-22', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('23', '2019-01-23', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('24', '2019-01-24', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('25', '2019-01-25', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('26', '2019-01-26', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('27', '2019-01-27', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('28', '2019-01-28', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('29', '2019-01-29', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('30', '2019-01-30', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('31', '2019-01-31', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('32', '2019-02-01', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('33', '2019-02-02', '2');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('34', '2019-02-03', '2');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('35', '2019-02-04', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('36', '2019-02-05', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('37', '2019-02-06', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('38', '2019-02-07', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('39', '2019-02-08', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('40', '2019-02-09', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('41', '2019-02-10', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('42', '2019-02-11', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('43', '2019-02-12', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('44', '2019-02-13', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('45', '2019-02-14', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('46', '2019-02-15', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('47', '2019-02-16', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('48', '2019-02-17', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('49', '2019-02-18', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('50', '2019-02-19', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('51', '2019-02-20', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('52', '2019-02-21', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('53', '2019-02-22', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('54', '2019-02-23', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('55', '2019-02-24', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('56', '2019-02-25', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('57', '2019-02-26', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('58', '2019-02-27', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('59', '2019-02-28', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('60', '2019-03-01', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('61', '2019-03-02', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('62', '2019-03-03', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('63', '2019-03-04', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('64', '2019-03-05', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('65', '2019-03-06', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('66', '2019-03-07', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('67', '2019-03-15', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('68', '2019-03-16', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('69', '2019-03-17', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('70', '2019-03-18', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('71', '2019-03-19', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('72', '2019-03-20', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('73', '2019-03-21', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('74', '2019-03-22', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('75', '2019-03-23', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('76', '2019-03-24', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('77', '2019-03-25', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('78', '2019-03-26', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('79', '2019-03-27', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('80', '2019-03-28', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('81', '2019-03-29', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('82', '2019-03-30', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('83', '2019-03-31', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('84', '2019-04-01', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('85', '2019-04-02', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('86', '2019-04-03', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('87', '2019-04-04', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('88', '2019-04-05', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('89', '2019-04-06', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('90', '2019-04-07', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('91', '2019-04-08', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('92', '2019-04-09', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('93', '2019-04-10', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('94', '2019-04-11', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('95', '2019-04-12', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('96', '2019-04-13', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('97', '2019-04-14', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('98', '2019-04-15', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('99', '2019-04-16', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('100', '2019-04-17', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('101', '2019-04-18', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('102', '2019-04-20', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('103', '2019-04-21', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('104', '2019-04-22', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('105', '2019-04-23', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('106', '2019-04-24', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('107', '2019-04-25', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('108', '2019-04-26', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('109', '2019-04-27', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('110', '2019-04-28', '2');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('111', '2019-04-29', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('112', '2019-04-30', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('113', '2019-05-01', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('114', '2019-05-02', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('115', '2019-05-03', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('116', '2019-05-04', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('117', '2019-05-05', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('118', '2019-05-06', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('119', '2019-05-07', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('120', '2019-05-08', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('121', '2019-05-09', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('122', '2019-05-10', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('123', '2019-05-11', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('124', '2019-05-12', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('125', '2019-05-13', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('126', '2019-05-14', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('127', '2019-05-15', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('128', '2019-05-16', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('129', '2019-05-17', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('130', '2019-05-18', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('131', '2019-05-19', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('132', '2019-05-20', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('133', '2019-05-21', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('134', '2019-05-22', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('135', '2019-05-23', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('136', '2019-05-24', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('137', '2019-05-25', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('138', '2019-05-26', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('139', '2019-05-27', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('140', '2019-05-28', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('141', '2019-05-29', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('142', '2019-05-30', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('143', '2019-05-31', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('144', '2019-06-01', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('145', '2019-06-02', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('146', '2019-06-03', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('147', '2019-06-04', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('148', '2019-06-05', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('149', '2019-06-06', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('150', '2019-06-07', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('151', '2019-06-08', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('152', '2019-06-09', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('153', '2019-06-10', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('154', '2019-06-11', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('155', '2019-06-12', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('156', '2019-06-13', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('157', '2019-06-14', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('158', '2019-06-15', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('159', '2019-06-16', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('160', '2019-06-17', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('161', '2019-06-18', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('162', '2019-06-19', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('163', '2019-06-20', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('164', '2019-06-21', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('165', '2019-06-22', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('166', '2019-06-23', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('167', '2019-06-24', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('168', '2019-06-25', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('169', '2019-06-26', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('170', '2019-06-27', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('171', '2019-06-28', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('172', '2019-06-29', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('173', '2019-06-30', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('174', '2019-07-01', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('175', '2019-07-02', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('176', '2019-07-03', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('177', '2019-07-04', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('178', '2019-07-05', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('179', '2019-07-06', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('180', '2019-07-07', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('181', '2019-07-08', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('182', '2019-07-09', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('183', '2019-07-10', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('184', '2019-07-11', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('185', '2019-07-12', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('186', '2019-07-13', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('187', '2019-07-14', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('188', '2019-07-15', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('189', '2019-07-16', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('190', '2019-07-17', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('191', '2019-07-18', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('192', '2019-07-19', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('193', '2019-07-20', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('194', '2019-07-21', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('195', '2019-07-22', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('196', '2019-07-23', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('197', '2019-07-24', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('198', '2019-07-25', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('199', '2019-07-26', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('200', '2019-07-27', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('201', '2019-07-28', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('202', '2019-07-29', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('203', '2019-07-30', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('204', '2019-07-31', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('205', '2019-08-01', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('206', '2019-08-02', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('207', '2019-08-03', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('208', '2019-08-04', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('209', '2019-08-05', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('210', '2019-08-06', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('211', '2019-08-07', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('212', '2019-08-08', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('213', '2019-08-09', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('214', '2019-08-10', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('215', '2019-08-11', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('216', '2019-08-12', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('217', '2019-08-13', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('218', '2019-08-14', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('219', '2019-08-15', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('220', '2019-08-16', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('221', '2019-08-17', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('222', '2019-08-18', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('223', '2019-08-19', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('224', '2019-08-25', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('225', '2019-08-26', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('226', '2019-08-27', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('227', '2019-08-28', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('228', '2019-08-29', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('229', '2019-08-30', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('230', '2019-08-31', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('231', '2019-09-01', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('232', '2019-09-02', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('233', '2019-09-03', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('234', '2019-09-04', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('235', '2019-09-05', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('236', '2019-09-06', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('237', '2019-09-07', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('238', '2019-09-08', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('239', '2019-09-09', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('240', '2019-09-10', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('241', '2019-09-11', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('242', '2019-09-12', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('243', '2019-09-13', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('244', '2019-09-14', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('245', '2019-09-15', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('246', '2019-09-16', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('247', '2019-09-17', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('248', '2019-09-18', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('249', '2019-09-19', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('250', '2019-09-20', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('251', '2019-09-21', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('252', '2019-09-22', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('253', '2019-09-23', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('254', '2019-09-24', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('255', '2019-09-25', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('256', '2019-09-26', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('257', '2019-09-27', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('258', '2019-09-28', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('259', '2019-09-29', '2');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('260', '2019-10-01', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('261', '2019-10-02', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('262', '2019-10-03', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('263', '2019-10-04', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('264', '2019-10-05', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('265', '2019-10-06', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('266', '2019-10-07', '1');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('267', '2019-10-08', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('268', '2019-10-09', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('269', '2019-10-10', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('270', '2019-10-11', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('271', '2019-10-12', '2');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('272', '2019-10-13', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('273', '2019-10-14', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('274', '2019-10-15', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('275', '2019-10-16', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('276', '2019-10-17', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('277', '2019-10-18', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('278', '2019-10-19', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('279', '2019-10-20', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('280', '2019-10-21', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('281', '2019-10-22', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('282', '2019-10-23', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('283', '2019-10-24', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('284', '2019-10-25', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('285', '2019-10-26', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('286', '2019-10-27', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('287', '2019-10-28', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('288', '2019-10-29', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('289', '2019-10-30', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('290', '2019-10-31', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('291', '2019-11-01', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('292', '2019-11-02', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('293', '2019-11-03', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('294', '2019-11-04', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('295', '2019-11-05', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('296', '2019-11-19', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('297', '2019-11-20', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('298', '2019-11-21', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('299', '2019-11-22', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('300', '2019-11-23', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('301', '2019-11-24', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('302', '2019-11-25', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('303', '2019-11-26', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('304', '2019-11-27', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('305', '2019-11-28', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('306', '2019-11-29', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('307', '2019-11-30', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('308', '2019-12-01', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('309', '2019-12-02', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('310', '2019-12-03', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('311', '2019-12-04', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('312', '2019-12-05', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('313', '2019-12-06', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('314', '2019-12-07', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('315', '2019-12-08', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('316', '2019-12-09', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('317', '2019-12-10', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('318', '2019-12-11', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('319', '2019-12-12', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('320', '2019-12-13', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('321', '2019-12-14', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('322', '2019-12-15', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('323', '2019-12-16', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('324', '2019-12-17', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('325', '2019-12-18', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('326', '2019-12-19', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('327', '2019-12-20', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('328', '2019-12-21', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('329', '2019-12-22', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('330', '2019-12-23', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('331', '2019-12-24', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('332', '2019-12-25', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('333', '2019-12-26', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('334', '2019-12-27', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('335', '2019-12-28', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('336', '2019-12-29', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('337', '2019-12-30', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('338', '2019-12-31', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('340', '2019-03-08', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('341', '2019-03-09', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('342', '2019-03-10', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('343', '2019-03-11', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('344', '2019-03-12', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('345', '2019-03-13', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('346', '2019-03-14', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('347', '2019-08-20', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('348', '2019-08-21', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('349', '2019-08-22', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('350', '2019-08-23', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('351', '2019-08-24', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('352', '2019-09-30', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('353', '2019-04-19', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('354', '2019-11-06', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('355', '2019-11-07', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('356', '2019-11-08', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('357', '2019-11-09', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('358', '2019-11-10', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('359', '2019-11-11', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('360', '2019-11-12', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('361', '2019-11-13', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('362', '2019-11-14', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('363', '2019-11-15', '0');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('364', '2019-11-16', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('365', '2019-11-17', '3');

insert into TEMP_WORK_DAY_2019 (ID, WORK_DAY, CODE)
values ('366', '2019-11-18', '0');

计算天数的方法代码,传入日期类似 2019-09-17 16:15:40

create or replace function FN_DURATION(p_arrival_time in varchar2,
                                       p_submit_time  in varchar2)
/*
  内容:获取时间差内分钟数,去除周末
  创建人:殷允琪
  创建时间:2019年7月3日09:51:36
  */
  --返回类型
 return varchar2
--返回参数
 is
  r_diff_mins     varchar2(100);
  v_holiday_count varchar2(100);
begin
  --计算到达与提交日期间包含公休、周末天数
  select count(1)
    into v_holiday_count
    from TEMP_WORK_DAY_2019
   where code != 0
     and work_day between p_arrival_time and p_submit_time;
  --计算到达与提交日期间天数   
  select round(count(1) * (1 / 24 / 60), 2)
    into r_diff_mins
    from (select to_char(TO_DATE(p_submit_time, 'yyyy-MM-dd hh24-mi-ss') -
                         (level / 60 / 24),
                         'd') DOW
            from dual
          connect by level <=
                     ceil((TO_DATE(p_submit_time, 'yyyy-MM-dd hh24-mi-ss') -
                          TO_DATE(p_arrival_time, 'yyyy-MM-dd hh24-mi-ss')) * 24 * 60));
  --到达与提交日期间天数 - 到达与提交日期间包含公休、周末天数
  return r_diff_mins - v_holiday_count;
end FN_DURATION;

调用方法进行计算

select FN_DURATION('2019-09-01 11:10:15','2019-09-20 13:30:35') as days from dual

原创文章 88 获赞 41 访问量 16万+

猜你喜欢

转载自blog.csdn.net/Damionew/article/details/100929885
今日推荐