2016-02-29 107 views
2

我只需要查看錶格中當前的年份行。Postgresql查詢當前年份

是否有可能過濾一個時間戳列只有當前年份參數,是否有一些函數可以返回此值?

SELECT * FROM mytable WHERE "MYDATE" LIKE CURRENT_YEAR 
+1

看看CURRENT_TIMESTAMP,然後在其上使用date_part ... http://www.postgresql.org/docs/current/static/functions-datetime.html –

回答

15

在PostgreSQL,你可以使用這個:

SELECT * FROM mytable WHERE date_part('year', mydate) = date_part('year', CURRENT_DATE); 

的date_part數功能適用於所有的PostgreSQL從目前的下跌釋放到7.1(至少)。

+3

請注意,該查詢將非常慢。更好的辦法是做mydate> = date_trunc('year',current_date)和mydate

+0

非常感謝那個提示!任何改進都非常感謝。我試圖通過一些測量來證實你寫的東西。我對包含大約200K條記錄,總共大約50列,並且有9個不同列的日期或時間戳記類型的表格進行了測試。根據色譜柱的不同,選擇的記錄數從500到30K不等。它把你的查詢延長了10%。最好的結果是接近水平。當然,我遵循統計調查的規則。我想你多次嘗試過。有人可以提出她或他自己的測量? – MyBrainHurts

-2
SELECT * FROM mytable WHERE myYear = YEAR(CURDATE()) 

上面的代碼適用於SQL!

+1

它不適用於postgresql –