Use FOR LOOP to loop through dates : DATE « PL SQL Data Types « Oracle PL/SQL Tutorial






SQL>
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
  2    test_date     DATE;
  3    day_of_week   VARCHAR2(3);
  4    years_ahead   INTEGER;
  5  BEGIN
  6    test_date := TO_DATE('1-Jan-1997','dd-mon-yyyy');
  7
  8    FOR years_ahead IN 1..10 LOOP
  9      day_of_week := TO_CHAR(test_date,'Dy');
 10
 11      IF day_of_week IN ('Sat','Sun') THEN
 12        DBMS_OUTPUT.PUT_LINE(TO_CHAR(test_date,'dd-Mon-yyyy')|| '     A long weekend!');
 13      ELSE
 14        DBMS_OUTPUT.PUT_LINE(TO_CHAR(test_date,'dd-Mon-yyyy')|| ' Not a long weekend.');
 15      END IF;
 16      test_date := ADD_MONTHS(test_date,12);
 17    END LOOP;
 18  END;
 19  /
01-Jan-1997 Not a long weekend.
01-Jan-1998 Not a long weekend.
01-Jan-1999 Not a long weekend.
01-Jan-2000     A long weekend!
01-Jan-2001 Not a long weekend.
01-Jan-2002 Not a long weekend.
01-Jan-2003 Not a long weekend.
01-Jan-2004 Not a long weekend.
01-Jan-2005     A long weekend!
01-Jan-2006     A long weekend!

PL/SQL procedure successfully completed.

SQL>
SQL>








21.6.DATE
21.6.1.DATE
21.6.2.Define DATE type variable
21.6.3.Date literals
21.6.4.Displaying Date and Time
21.6.5.Using the DATE Format Mask
21.6.6.Using Format Masks mixed with user string
21.6.7.Assignment value to DATE type variable during declaration
21.6.8.Use SYSDATE to initialize an DATE type variable
21.6.9.Define DATE type variable, assign value TRUNC(SYSDATE)
21.6.10.Use FOR LOOP to loop through dates
21.6.11.Compare DATE type variable in IF statement
21.6.12.Compare DATE type variable after truncating
21.6.13.Combine TO_NUMBER and TO_DATE to get different parts of a Date
21.6.14.Performing Calculations on a Converted Date
21.6.15.Converting DATE to a Spelled-Out Character Format
21.6.16.Calculate the months between two dates
21.6.17.Use the date value back and forth
21.6.18.Remember That Dates Are Numbers
21.6.19.Check the last date that a date type variable can hold
21.6.20.Use the new EXTRACT function to grab individual year and month components.
21.6.21.ROUND function being applied to datetime values
21.6.22.TO_CHAR(C,'YYYY-MM-DD HH:MI:SS.FF AM TZH:TZM TZR TZD')