できません。それはそれと同じくらい簡単です。国民の祝日は世界中で異なり、年ごとに異なり、追加の祝日はいつでも追加または削除できます。さらに、一部の管轄区域では、週末に当たる国民の祝日が繰り越され、翌週に祝日があります。他の人はしません。
カレンダーテーブルを作成し、これに国旗を付ける必要があります。
たとえば
create table calender
( day date
, weekend varchar2(1)
, holiday varchar2(1)
);
次に、データを挿入します...
insert into calender (day, weekend)
select trunc(sysdate + level)
, case when to_date(sysdate + level,'fmDAY') in ('SATURDAY','SUNDAY')
then 'Y' else 'N' end
from dual
connect by level <= 365
最後に、そこで国民の祝日として数えるものを手動で更新します。
次に、次のような入力方法に応じて、営業日を選択できます。
select count(*)
from calender
where day between :startdate and :enddate
and weekend = 'N'
and holiday = 'N'