我的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