2012-04-21 11 views
8

W tej chwili mam tabelę, która zawiera 4 terminach:Sprawdzenie, czy data jest ponad 3 lat w PostgreSQL

CREATE TABLE dates (
date date 
); 

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

chciałbym mieć oświadczenie, w którym można znaleźć wszystkie daty, które są starsze niż trzy lata. To powinny być pierwsze 2 daty.

Do tej pory mam:

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

ale to nie działa.

Każda pomoc zostanie bardzo doceniona.

Odpowiedz

15

Spróbuj tego:

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

Również nazywania kolumnę date nie jest dobra praktyka, ponieważ jest to słowo zarezerwowane w PostgreSQL.

+3

To nit-pick, jest zastrzeżonym słowem w standardzie SQL, chociaż PostgreSQL nie uznał za konieczne zarezerwowania go. W celu zapewnienia przenośności i zabezpieczenia na przyszłość może być rozsądnie unikać używania go jako identyfikatora. http://www.postgresql.org/docs/current/interactive/sql-keywords-appendix.html – kgrittn

Powiązane problemy