我有一个名为TrainingMatrix
的表,它有一个名为ExpiryDate
的列。我正在尝试编写一个SQL语句,它可以向我显示2012年的所有记录:
SELECT * FROM "TrainingMatrix" WHERE "ExpiryDate" - current_date < 0 AND EXTRACT(YEAR FROM TIMESTAMP "ExpiryDate") = 2012;
但这不起作用,任何人都可以帮忙吗?
我正在使用PostgreSQL。
答案 0 :(得分:2)
使用列时没有时间戳字:
... AND EXTRACT(YEAR FROM "ExpiryDate") = 2012 ...
答案 1 :(得分:2)
如果您在ExpiryDate列上有索引 - 最好避免使用函数并具有确切的日期/时间戳范围:
and "ExpiryDate">='2012-01-01' and "ExpiryDate"<'2013-01-01';