create or replace function get_workday(starTime in date,endTime in date) return number
Weekends number;
Holidays number;
Workdays number;
begin
--统计开始到结束有几天周末
select count(*) into Weekends from(
SELECT TO_CHAR (TRUNC (starTime, 'DD') - 1 + ROWNUM, 'D') week_no
FROM all_objects
WHERE ROWNUM <= -- 计算从开始时间到结束时间有多少天
(select ceil(endTime-starTime) from dual)
) where week_no in(7,1);
--从节假日表中获取开始到结束有几天节日
select nvl(sum(decode(isholiday,0,1,1,-1)),0) into Holidays from to_yx_ykbz_holiday t--
where hdate <= trunc(endTime,'dd') and hdate >= trunc(starTime,'dd');
select ceil(endTime-starTime) into Workdays from dual;
Workdays := Workdays - Weekends - Holidays;
return(Workdays);
1.获取周末需要使用一个数据all_objects表
create or replace function get_workday(starTime in date,endTime in date) return numberisWeekends number;Holidays number;Workdays number;begin--统计开始到结束有几天周末select count(*) into Weekends from(SELECT TO_...
CREATE OR REPLACE function moniter_work_time(p_bgdatetime1 in date, --开始时间
p_eddatetime1 in date, --结束时间
worko...
holiday_date NUMBER(10) not null,
holiday_name VARCHAR2(255) not null,
holiday_type CHAR(1) not null,
time_stamp DATE
CREATE TABLE "T_WEEKDAY" (
"FYEAR" VARCHAR2(100 BYTE),
"FDATE" VARCHAR2(100 BYTE) NOT NULL,
"FFLAG" VARCHAR2(100 BYTE),
"FWEEK" VARCHAR2(100 BYTE),
"FTIME" VARCHAR2(100 BYTE),
"FEMPID" VARCH
好的,我可以回答这个问题。要建立一个
节假日
表,需要先创建一个包含日期和是否为
节假日
的字段的表。可以使用以下 SQL 语句创建这个表:
CREATE TABLE holiday (
date DATE PRIMARY KEY,
is_holiday BOOLEAN NOT NULL
然后,可以向这个表中插入数据,例如:
INSERT INTO holiday (date, is_holiday) VALUES
('2022-01-01', true),
('2022-01-02', true),
('2022-01-03', true),
('2022-02-01', false),
('2022-02-02', false),
('2022-02-03', true);
这样就可以创建一个简单的
节假日
表了。