1

我有一个名为的表TrainingMatrix,它有一个名为ExpiryDate. 我正在尝试编写一个 SQL 语句,它可以显示 2012 年的所有记录,如下所示:

 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 回答