2012-04-21 17 views
8

Por el momento tengo una tabla que contiene 4 fechas:Comprobación de si la fecha es de más de 3 años de edad en PostgreSQL

CREATE TABLE dates (
date date 
); 

    11-mar-2008 
    25-now-2007 
    18-apr-2012 
    20-apr-2012 

me gustaría tener una declaración donde puedo encontrar todas las fechas que son mayores de tres años de edad. Esa debería ser las primeras 2 fechas.

hasta ahora tengo:

SELECT * FROM dates WHERE date = now()::-1095; 

pero esto no funciona.

Cualquier ayuda sería muy apreciada.

Respuesta

15

Prueba esto:

SELECT * FROM dates WHERE date < now() - '3 years'::interval; 

Además, el nombramiento de su columna date no es una buena práctica, ya que es una palabra reservada en PostgreSQL.

+3

Para nit-pick, es una palabra reservada en el estándar SQL, aunque PostgreSQL no ha encontrado necesario reservarla. Para la portabilidad y la protección del futuro, podría ser aconsejable evitar usarlo como identificador. http://www.postgresql.org/docs/current/interactive/sql-keywords-appendix.html – kgrittn

Cuestiones relacionadas