1

というテーブルTrainingMatrixがあり、 という列がありますExpiryDate。次のように、2012 年のすべてのレコードを表示できる SQL ステートメントを作成しようとしています。

 SELECT * FROM "TrainingMatrix" WHERE "ExpiryDate" - current_date < 0 AND EXTRACT(YEAR FROM TIMESTAMP "ExpiryDate") = 2012;

しかし、これは機能しません。誰か助けてもらえますか?

私はPostgreSQLを使用しています。

4

2 に答える 2

3

列の使用時にタイムスタンプワードがありません:

... AND EXTRACT(YEAR FROM "ExpiryDate") = 2012 ...
于 2013-10-19T07:14:46.257 に答える
2

ExpiryDate 列にインデックスがある場合は、関数の使用を避け、正確な日付/タイムスタンプの範囲を指定することをお勧めします。

and "ExpiryDate">='2012-01-01' and "ExpiryDate"<'2013-01-01';
于 2013-10-19T08:26:38.710 に答える