powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Сформировать курсор с датами за определенный период
4 сообщений из 4, страница 1 из 1
Сформировать курсор с датами за определенный период
    #36548061
Oleg_A67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Надо создать курсор со списком дат за определенный период, исключив при этом субботы и воскреснья. Если бы была некая таблица в которой были бы заведены все даты, то с написанием такого запрос
Код: plaintext
SELECT DATE_INPUT FROM TABLE1 WHERE DATE_INPUT BETWEEN '2010-07-01'  AND '2010-08-02' AND  DAYOFWEEK(DATE_INPUT) NOT IN ( 1 , 7 )
проблема была бы решена. А можно ли как-нибудь извернуться с запросом, чтобы не создовать специально таблицу со всеми датами?
...
Рейтинг: 0 / 0
Сформировать курсор с датами за определенный период
    #36548241
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за проблема-то, которую вы решаете? /вырезано самоцензурой/ (Вот не могу себе представить ситуацию, где кровь из носу нужен такой курсор). Читайте "кулинарную книжку" (http://mysite.verizon.net/Graeme_Birchall/id1.html), постигайте рекурсивные запросы.

А в "реальной жизни" я таблицу бы завёл. Обычно ведь нужны не субботы с воскресеньями, а выходные, которые не обязаны приходиться на эти дни. В том числе праздники (которые могут меняться год от года) и переносы.
...
Рейтинг: 0 / 0
Сформировать курсор с датами за определенный период
    #36550741
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create function workdays(start date, finish date)
returns table (d date)
no external action
deterministic
return
with t(d) as (
values start
  union all
select d +  1  day
from t
where d<finish)
select d
from t
where DAYOFWEEK(d) NOT IN ( 1 , 7 );

select d
from table(workdays(current date -  7  days, current date +  7  days)) t;
...
Рейтинг: 0 / 0
Сформировать курсор с датами за определенный период
    #36551328
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein
Большое спасибо
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Сформировать курсор с датами за определенный период
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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