2012-04-21 15 views
8

に以上3歳が存在するかどうかの確認:日は私が4つの日付を含むテーブルを持っている現時点ではPostgreSQL

CREATE TABLE dates (
date date 
); 

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

私はより古いすべての日付を見つけることができ文を持っていると思います3歳。それは最初の2つの日付でなければなりません。

これまでのところ私が持っている:

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

が、これは動作しません。

ご協力いただければ幸いです。

答えて

15

はこれを試してみてください:

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

これはPostgreSQLでは予約語であるとしても、あなたのコラムdateに名前を付けることは、良い習慣ではありません。

+3

nit-pickには、SQL標準の予約語ですが、PostgreSQLでは予約する必要はありません。移植性と将来性を確保するためには、それを識別子として使用することは避けてください。 http://www.postgresql.org/docs/current/interactive/sql-keywords-appendix.html – kgrittn

関連する問題