Home FAQ Previous

How to generate a random date.




 To generate a random date we may use PL/SQL package DBMS_RANDOM. 
The DBMS_RANDOM package provides a built-in random number generator. 
It is faster than generators written in PL/SQL because it calls Oracle's 
internal random number generator.
 Function DBMS_RANDOM.VALUE(n1, n2) retuns numbers from n1 to n2
For example if you want to get number from 0 to 9, you would use this code:
 SELECT TRUNC(DBMS_RANDOM.VALUE(0, 10)) FROM DUAL;

To generate random date use the following code:


SELECT TO_DATE
          (TRUNC (DBMS_RANDOM.VALUE (TO_CHAR (TO_DATE ('1/1/2008',
                                                       'mm/dd/yyyy'
                                                      ),
                                              'j'
                                             ),
                                     (  TO_CHAR (TO_DATE ('1/1/2008',
                                                          'mm/dd/yyyy'
                                                         ),
                                                 'j'
                                                )
                                      + 364
                                     )
                                    )
                 ),
           'j'
          ) random_date_2008
  FROM DUAL


Home FAQ Previous