我只需要查看錶格中當前的年份行。Postgresql查詢當前年份
是否有可能過濾一個時間戳列只有當前年份參數,是否有一些函數可以返回此值?
SELECT * FROM mytable WHERE "MYDATE" LIKE CURRENT_YEAR
我只需要查看錶格中當前的年份行。Postgresql查詢當前年份
是否有可能過濾一個時間戳列只有當前年份參數,是否有一些函數可以返回此值?
SELECT * FROM mytable WHERE "MYDATE" LIKE CURRENT_YEAR
在PostgreSQL,你可以使用這個:
SELECT * FROM mytable WHERE date_part('year', mydate) = date_part('year', CURRENT_DATE);
的date_part數功能適用於所有的PostgreSQL從目前的下跌釋放到7.1(至少)。
請注意,該查詢將非常慢。更好的辦法是做mydate> = date_trunc('year',current_date)和mydate
非常感謝那個提示!任何改進都非常感謝。我試圖通過一些測量來證實你寫的東西。我對包含大約200K條記錄,總共大約50列,並且有9個不同列的日期或時間戳記類型的表格進行了測試。根據色譜柱的不同,選擇的記錄數從500到30K不等。它把你的查詢延長了10%。最好的結果是接近水平。當然,我遵循統計調查的規則。我想你多次嘗試過。有人可以提出她或他自己的測量? – MyBrainHurts
SELECT * FROM mytable WHERE myYear = YEAR(CURDATE())
上面的代碼適用於SQL!
它不適用於postgresql –
看看CURRENT_TIMESTAMP,然後在其上使用date_part ... http://www.postgresql.org/docs/current/static/functions-datetime.html –