2010-01-18 23 views
7

Tengo un oráculo DB y necesito una tabla que contenga todas las fechas que abarcan 2 años; por ejemplo de 01/01/2011 a 01/01/2013.secuencia de fecha del oráculo?

principio pensé en una secuencia pero al parecer el tipo sólo está soportado es el número, por lo que ahora estoy buscando una forma eficaz de hacer esto

aplausos engaño

Respuesta

17

Si lo que desea es poblar un bloque de registros con fechas secuenciales, eso es bastante fácil de hacer. La siguiente consulta genera diez fechas. Todo lo que necesita hacer es ajustar la fecha inicial para darle su punto de partida y el level en la cláusula connect by para que se ajuste a su punto final, y luego conectarlo a una declaración insert.

SQL> select (trunc(sysdate, 'MM')-1) + level 
    2 from dual 
    3 connect by level <= 10 
    4/

(TRUNC(SY 
--------- 
01-JAN-10 
02-JAN-10 
03-JAN-10 
04-JAN-10 
05-JAN-10 
06-JAN-10 
07-JAN-10 
08-JAN-10 
09-JAN-10 
10-JAN-10 

10 rows selected. 

SQL> 
0

Diga por ejemplo tenemos una tabla llamada: planos de referencia, con el dato de la columna (Tipo fecha) tabla contiene:

21-01-2010 
22-01-2010 
01-12-2009 
06-10-2008 
03-07-2007 

entonces se podría usar:

SELECT * 
    FROM datums 
WHERE datum 
BETWEEN to_date('01/01/2009','mm/dd/yyyy') 
    AND to_date('12/31/2010','mm/dd/yyyy') 

resultado :

21-01-2010 
22-01-2010 
01-12-2009 
Cuestiones relacionadas