gpt4 book ai didi

sql - 当前分钟的 PostgreSQL 查询

转载 作者:行者123 更新时间:2023-11-29 12:34:25 24 4
gpt4 key购买 nike

我的 Web 应用程序需要获取具有这一分钟时间值的所有项目的结果。我的表有时间属性

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

谢谢

最佳答案

我会尝试这样的事情:

WHERE
time >= date_trunc('minute', now()) AND
time < date_trunc('minute', now()) + INTERVAL '1 minute';

这将定义边界并搜索该范围内的时间,这意味着它仍然可以使用您在 time 列上拥有(或应该拥有)的索引。

关于sql - 当前分钟的 PostgreSQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3416923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com