2013-10-19 26 views
0

我有一個名爲TrainingMatrix的表,它有一個名爲ExpiryDate的列。我想寫一個SQL語句,它可以告訴我2012的所有記錄如下:在PostgreSQL中獲取時間戳的年份

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

但是,這並不工作,任何一個可以幫助嗎?

我正在使用PostgreSQL。

回答

2

沒有時間戳用字列時:

... AND EXTRACT(YEAR FROM "ExpiryDate") = 2012 ... 
2

如果您在ExpiryDate列有索引 - 這是更好地避免使用功能,並有確切的日期/時間戳記範圍:

and "ExpiryDate">='2012-01-01' and "ExpiryDate"<'2013-01-01'; 
相關問題