Mega Code Archive

 
Categories / Oracle PLSQL / Data Type
 

Check date value range

SQL> SQL> CREATE OR REPLACE FUNCTION date_range   2     (p_low_end_date  DATE,   3      p_high_end_date DATE,   4      p_to_check_date DATE)   5      RETURN BOOLEAN IS   6   7      returnBoolean BOOLEAN := FALSE;   8      smallDate   DATE := TRUNC(p_low_end_date); -- Time 00:00:00   9      largeDate  DATE := TRUNC(p_high_end_date + 1) - .000011574;  10  BEGIN  11     IF p_to_check_date >  smallDate  AND  12        p_to_check_date <= largeDate THEN  13        returnBoolean := TRUE;  14     END IF;  15  16     DBMS_OUTPUT.PUT_LINE('Low Date     : ' || TO_CHAR(smallDate, 'MM/DD/YYYY:HH24:MI:SS'));  17     DBMS_OUTPUT.PUT_LINE('Date To Check: ' || TO_CHAR(p_to_check_date, 'MM/DD/YYYY:HH24:MI:SS'));  18     DBMS_OUTPUT.PUT_LINE('High Date    : ' || TO_CHAR(largeDate,    'MM/DD/YYYY:HH24:MI:SS'));  19     RETURN returnBoolean;  20  END date_range;  21  / Function created. SQL> SQL> SET SERVEROUTPUT ON SIZE 1000000 SQL> DECLARE   2     checkBoolean BOOLEAN;   3  BEGIN   4     checkBoolean := date_range(SYSDATE, SYSDATE, SYSDATE);   5     IF checkBoolean THEN   6        DBMS_OUTPUT.PUT_LINE('Date in Range: TRUE');   7     ELSE   8        DBMS_OUTPUT.PUT_LINE('Date in Range: FALSE');   9    END IF;  10  END;  11  / Low Date     : 06/19/2008:00:00:00 Date To Check: 06/19/2008:18:55:03 High Date    : 06/19/2008:23:59:59 Date in Range: TRUE PL/SQL procedure successfully completed. SQL>