使用 PL/SQL 计算两个日期之间的特殊日子的数量
先决条件 - PL/SQL 介绍,PL/SQL 中的决策制定
编写一个 pl/sql 程序来输入两个日期并打印这两个日期之间的星期日数。
解释:
在循环的每次迭代之前,都会评估条件。如果计算结果为TRUE ,则执行 sequence_of_statements。如果 condition 的计算结果为FALSE或NULL ,则循环结束并在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循环首先检查条件然后执行,所以我们很容易计算两个日期之间的特殊日子的数量。