我的web應用程序需要獲取所有具有其時間值的項目的結果。我的表具有時間屬性PostgreSQL查詢當前分鐘
id, message, time, ...,
其中時間類型是帶時區的時間戳。 我需要獲取時間爲當前分鐘的所有條目的列表。比較整個值不匹配,因爲時間戳具有微秒的分辨率。
目前我正在使用下面的查詢來返回這個列表,它的工作原理,但我認爲應該有一個更有效的方式來做到這一點。
SELECT * FROM notification WHERE
date_part('year', time) = date_part('year', current_date) AND
date_part('month', time) = date_part('month', current_date) AND
date_part('day', time) = date_part('day', current_date) AND
date_part('hour', time) = date_part('hour', current_time) AND
date_part('minute', time) = date_part('minute', current_time);
我也想知道如何得到這個和前一分鐘或最後一個'n'分鐘的結果。 數據庫PostgreSQL的是8.4.3
感謝
這正是我所期待的。我可以通過改變區間數量來檢查最後n分鐘。 謝謝... 有關這個問題的一個問題是Postgres足夠聰明,以確定小時是否在周圍環繞?假設在11:59有一個條目,那麼在過去2分鐘的12:00的查詢會返回該結果嗎?或者它只是使用分鐘字段進行比較? – Inn0vative1 2010-08-06 15:46:56
使用「INTERVAL」類型完成的任何操作都將足夠智能,以正確計算時間/日曆計算。 – 2010-08-06 15:53:33