CREATE OR REPLACE FUNCTION Random_Date (start_date IN DATE DEFAULT ADD_MONTHS(SYSDATE,-600) ,end_date IN DATE DEFAULT ADD_MONTHS(SYSDATE,600) ) RETURN DATE IS --============================================================================ -- Copywright 2003, joel crainshaw and chet west --============================================================================ -- DESCRIPTION -- simple function to generate a random date -- You can pass in a date range --============================================================================ -- MODIFICATION HISTORY -- Person Date Comments -- --------- ---------- ------------------------------------------- -- Chet 08/08/2003 Initial Creation --============================================================================ v_rand_date DATE := SYSDATE; BEGIN SELECT TO_DATE(TRUNC(dbms_random.value (TO_CHAR(TO_DATE(start_date),'J') ,TO_CHAR(TO_DATE(end_date),'J')) ) ,'J') INTO v_rand_date FROM sys.dual; RETURN v_rand_date; END;