2017-03-10 2 views
0

私はPostgreSQLで、聞いてもが、どのようにここでのPostgreSQL:CURRENT_DATEどこ実行する方法 - タイムスタンプ>(年/ヶ月/日の値)

where CURRENT_DATE - timestamp > (Value of years/months/days). 

を行うために、私はの年齢を計算したいのですが人が生まれたときにCURRENT_DATEとタイムスタンプの減算をする必要がありますが、それから私はやり方がわからないので、とにかく私を助けることができますか?
ありがとうございました

答えて

1

INTERVAL typeが必要です。 DATE/TIMESTAMPから

それはcan be subtracted、あなたの最高の述語はなりますので:

WHERE CURRENT_TIMESTAMP - INTERVAL '18 years' > your_timestamp_column 

それとも、あなただけの最も可能性が高い(基本タイプをバインドすることができるかどうか(与えられたINTERVALは、クエリパラメータであり、必要がある場合) )、あなたは単にf.exをバインドすることができます。 INTEGER年の値:

WHERE CURRENT_TIMESTAMP - (? * INTERVAL '1 year') > your_timestamp_column 

技術的には、あなたのオリジナルのロジックは、あまりにも仕事ができる:your_timestamp_column &上の任意のインデックスを使用しません

WHERE CURRENT_TIMESTAMP - your_timestamp_column > INTERVAL '18 years' 

しかしINTERVAL justificationの対象となります。

+0

はい、それは「INTERVAL '18 years」で動作します – martinwang1985

関連する問題