Non puoi. E 'così semplice. Le festività nazionali variano in tutto il mondo, variano di anno in anno e altre possono essere aggiunte o tolte in qualsiasi momento. Inoltre, alcune giurisdizioni riportano le festività nazionali che cadono nel fine settimana e le hanno la settimana successiva; altri no.
Dovrai creare una tabella del calendario e contrassegnare le festività nazionali / i fine settimana, ecc. In questo.
Ad esempio
create table calender
( day date
, weekend varchar2(1)
, holiday varchar2(1)
);
Quindi inserisci dei dati al suo interno...
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
Infine, aggiorna manualmente ciò che consideri una festa nazionale lì dentro.
Puoi quindi selezionare i giorni lavorativi, a seconda di come lo hai popolato con qualcosa di simile a questo:
select count(*)
from calender
where day between :startdate and :enddate
and weekend = 'N'
and holiday = 'N'