powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / счетчик на наращивание даты pl/sql
8 сообщений из 8, страница 1 из 1
счетчик на наращивание даты pl/sql
    #39507624
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как прописать скрипт в пл/сял заинсертить в таблицу дату за год с наращивание даты с 01.01.2017 до 31.12.2017 при условии чтобы суббота и воскресенье не попадало

типо так

DATE
01.01.2017
02.01.2017
03.01.2017
04.01.2017
05.01.2017
08.01.2017
09.01.2017
10.01.2017
...
31.12.2017

помогите пожалуйста
...
Рейтинг: 0 / 0
счетчик на наращивание даты pl/sql
    #39507625
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорее всего при помощи цикла нужна в блоке PL/SQL
...
Рейтинг: 0 / 0
счетчик на наращивание даты pl/sql
    #39507638
Kaban77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
счетчик на наращивание даты pl/sql
    #39507642
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122скорее всего при помощи цикла нужна в блоке PL/SQL
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
 v_dat date :=date '2017-01-01';
begin
 loop
   if v_dat-trunc(v_dat,'iw') not in (5,6) then
     dbms_output.put_line(v_dat);
     --insert into t(dat) values(v_dat);
   end if;
   if to_char(v_dat,'YYYY')<>to_char(v_dat+1,'YYYY') then
     exit;
   end if;
   v_dat:=v_dat+1;
 end loop;
end;
/



.....
stax
...
Рейтинг: 0 / 0
счетчик на наращивание даты pl/sql
    #39507662
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122,

Можно такое в For (например) обернуть
Код: plsql
1.
2.
3.
4.
5.
6.
7.
select D from 
(
       select to_date('01.01.2017','DD.MM.YYYY')+level-1 D, to_char(to_date('01.01.2017','DD.MM.YYYY')+level-1, 'D') DW
       from dual
       connect by level <= to_date('31.12.2017','DD.MM.YYYY')-to_date('01.01.2017','DD.MM.YYYY')+1
      )
where DW not in (1,7)
...
Рейтинг: 0 / 0
счетчик на наращивание даты pl/sql
    #39507680
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXLМожно такое в For (например) обернуть


where DW not in (1,7) NLS-зависим и например в европе отбросит понедельник и воскресение. Так-что либо:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
select D from 
(
       select to_date('01.01.2017','DD.MM.YYYY')+level-1 D, to_char(to_date('01.01.2017','DD.MM.YYYY')+level-1, 'FMDay','nls_date_language=english') DW
       from dual
       connect by level <= to_date('31.12.2017','DD.MM.YYYY')-to_date('01.01.2017','DD.MM.YYYY')+1
      )
where DW not in ('Saturday','Sunday')



либо ISO формат.

SY.
...
Рейтинг: 0 / 0
счетчик на наращивание даты pl/sql
    #39507763
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxGoofy122скорее всего при помощи цикла нужна в блоке PL/SQL
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
 v_dat date :=date '2017-01-01';
begin
 loop
   if v_dat-trunc(v_dat,'iw') not in (5,6) then
     dbms_output.put_line(v_dat);
     --insert into t(dat) values(v_dat);
   end if;
   if to_char(v_dat,'YYYY')<>to_char(v_dat+1,'YYYY') then
     exit;
   end if;
   v_dat:=v_dat+1;
 end loop;
end;
/




.....
stax
...
Рейтинг: 0 / 0
счетчик на наращивание даты pl/sql
    #39507764
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122,

спасибо друзья
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / счетчик на наращивание даты pl/sql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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