📜  使用 PL/SQL 计算两个日期之间的特殊日子的数量

📅  最后修改于: 2022-05-13 01:55:45.488000             🧑  作者: Mango

使用 PL/SQL 计算两个日期之间的特殊日子的数量

先决条件 - PL/SQL 介绍,PL/SQL 中的决策制定

编写一个 pl/sql 程序来输入两个日期并打印这两个日期之间的星期日数。

解释:
在循环的每次迭代之前,都会评估条件。如果计算结果为TRUE ,则执行 sequence_of_statements。如果 condition 的计算结果为FALSENULL ,则循环结束并在END LOOP语句之后恢复控制。

笔记:
简单循环和while循环的唯一区别是先简单执行然后检查条件,所以简单循环至少执行一次,在while循环中先检查条件然后执行。

示例 1:

Input: Enter value for date1: 01-SEP-19 
      Enter value for date2: 29-SEP-19

Output: no of Sundays : 5 

示例 2:

Input: Enter value for date1: 01-SEP-19
      Enter value for date2: 15-SEP-19

Output: no of Sundays: 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

输出:

Enter value for date1: 01-SEP-19
old 5: Begin D1:='&Date1';
new 5: Begin D1:='01-SEP-19';

Enter value for date2: 29-SEP-19
old   6:  D2:='&Date2';
new   6:  D2:='29-SEP-19';
no of Sundays:5 

PL/SQL 过程成功完成。

好处:-
通过使用while循环首先检查条件然后执行,所以我们很容易计算两个日期之间的特殊日子的数量。