Подсчитайте количество особого дня между двумя датами с помощью PL / SQL

Опубликовано: 30 Ноября, 2021

Предварительные требования - Введение в PL / SQL, принятие решений в PL / SQL

Напишите программу pl / sql для ввода двух дат и вывода количества воскресений между этими двумя датами.

Объяснение:
Перед каждой итерацией цикла оценивается состояние. Если он оценивается как ИСТИНА , выполняется последовательность_условий. Если условие оценивается как FALSE или NULL , цикл завершается, и управление возобновляется после операторов END LOOP.

Примечание:
Единственная разница между простым циклом и циклом while заключается в том, что сначала выполняется простое выполнение, а затем выполняется проверка условия, поэтому простой цикл выполняется хотя бы один раз, а в цикле while сначала проверяется условие, а затем выполняется.

Пример-1:

Ввод: введите значение для date1: 01-SEP-19 
      Введите значение для date2: 29-SEP-19

Выход: нет воскресений: 5

Пример-2:

 Ввод: введите значение для date1: 01-SEP-19
      Введите значение для date2: 15-SEP-19

Выход: нет воскресений: 3

Код:

--declare the variables D1 and D2.
--type of variable is Date.
SQL> DECLARE
D1 Date ;
D2 Date ;
Cnt Number:=0;
BEGIN
D1:= '&Date1' ;
D2:= '&Date2' ;
D1:=next_day(D1-1, 'SUNDAY' );
--check the condition by using while loop.
while(D1<=D2)
LOOP
Cnt:=Cnt+1;
D1:=D1+7;
END LOOP;
dbms_output.put_line(' no of Sundays:'||Cnt);
END ;
/
--end of program

Выход:

 Введите значение для date1: 01-SEP-19
старый 5: Начало D1: = '& Date1';
новый 5: Начало D1: = '01-SEP-19';

Введите значение для date2: 29-SEP-19
старый 6: D2: = '& Date2';
новый 6: D2: = '29-SEP-19';
Кол-во воскресений: 5

Процедура PL / SQL успешно завершена.

Преимущества:-
Используя сначала цикл while, он проверяет условие, а затем выполняет его, поэтому мы легко подсчитываем количество особого дня между двумя датами.

SQL