powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос
10 сообщений из 10, страница 1 из 1
Запрос
    #39261120
SerX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем.
Помогите вывести запрос, результатом которого будут даты рабочих дней начиная с текущей даты. ((т.е. кроме сб. и вс., и еще следует ограничится 14 строками в результате - типа запись на прием к врачу в рабочие дни). Если такое возможно.
Спасибо.
...
Рейтинг: 0 / 0
Запрос
    #39261131
ARlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SerX, как то так можно

Код: plsql
1.
2.
3.
4.
select trunc(sysdate) + level - 1 dats
	from dual
 where to_char(trunc(sysdate) + level - 1, 'd') not in (6, 7)
connect by rownum <= 14
...
Рейтинг: 0 / 0
Запрос
    #39261135
...
Рейтинг: 0 / 0
Запрос
    #39261148
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а праздничные дни учитывать не надо?
...
Рейтинг: 0 / 0
Запрос
    #39261207
SerX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ARlexSerX, как то так можно

Код: plsql
1.
2.
3.
4.
select trunc(sysdate) + level - 1 dats
	from dual
 where to_char(trunc(sysdate) + level - 1, 'd') not in (6, 7)
connect by rownum <= 14



ARlex, попадание в десятку. Спасибо. Но вот подправили с исключением еще и праздничных дней.
...
Рейтинг: 0 / 0
Запрос
    #39261231
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ARlexSerX, как то так можно
Код: plsql
1.
2.
3.
4.
select trunc(sysdate) + level - 1 dats
	from dual
 where to_char(trunc(sysdate) + level - 1, 'd') not in (6, 7)
connect by rownum <= 14

to_char(x, 'd') или to_char(x, 'day') - depend on the NLS territory of the session.
Как любезно подсказал Elic, правильнее было бы использовать "IW" - Calendar week of year (1-52 or 1-53), as defined by the ISO 8601 standard.
...
Рейтинг: 0 / 0
Запрос
    #39261494
ARlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для учета nls:
to_char(l_date, 'dy', 'nls_date_language=american') not in ('sat','sun')

для учета праздничных дней - заводи календарь с этими датами и проверяй в нем наличие
...
Рейтинг: 0 / 0
Запрос
    #39261585
SerX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю.
...
Рейтинг: 0 / 0
Запрос
    #39261589
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ARlexдля учета nls:
to_char(l_date, 'dy', 'nls_date_language=american') not in ('sat','sun')

для учета праздничных дней - заводи календарь с этими датами и проверяй в нем наличиевообще-то все нормальные календари содержат все дни - рабочие, выходные, праздничные, предпраздничные (на час короче), и по видам профессий
...
Рейтинг: 0 / 0
Запрос
    #39261605
alexk123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простая проверка на субботу и воскресенье не сработает в реальной жизни.

Популярны переносы рабочих дней на выходные,а выходных на рабочие в случае каких либо праздников. Типа "суббота" переносится на "понедельник".
Так что нужен справочник выходных и праздничных дней и правил переноса на каждый год (правила устанавливаются правительством перед началом года). А дальше процедурой рассчитывается реальный календарь рабочих дней.
Плюс бывают внеплановые события - типа трауров и объявления нерабочими днями. Также если это федеральная сеть, но надо учитывать что есть региональные праздничные дни - типа выходной в Башкирии по случаю сабантуя :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]