@ Точка JorgeCampos хорошо взята за день 1. Вы указываете с MON 0, что понедельник - начало недели, настройки NLS в БД и ваш locale определяет это.
select to_char(sysdate, 'D'), to_char(sysdate,'DAY') from dual;
дает результат, который вы просили. У нас есть таблица, которая будет в следующем году заселена в декабре следующего года. Включает в себя все праздники и т.д.
JCAL_JOB_DATE NOT NULL DATE
JCAL_USER_ID VARCHAR2(30)
JCAL_ACTIVITY_DATE DATE
JCAL_BUSINESS_DAY VARCHAR2(2)
JCAL_HOLIDAY VARCHAR2(2)
JCAL_WEEKEND VARCHAR2(2)
Это используется для прогнозирования рабочих мест в будущем, и некоторые повторяющиеся задания, которые не хотят работать на праздники или выходные, например.
select jcal_job_date from jcal where
JCAL_JOB_DATE > sysdate
and JCAL_BUSINESS_DAY='Y'
and rownum <6;
Это один не очень хороший способ получить пятый рабочий день. Fetch Вы можете использовать множество других функций, чтобы оптимизировать это.
Этот вид таблицы ОЧЕНЬ полезен для определения той же информации (работы, праздника, выходного дня) в прошлом.
Где я нахожусь, праздники, которые выпадают в последний четверг ноября, и добавляются дополнительные праздники. Программирование для этого сложно по сравнению с простым поиском, который отлично работает.
Следующая помощь: http://stackoverflow.com/questions/14898357/calculate-business-days-in-oracle-sqlno-functions-or-procedure – Seymour