PostgreSQL:获取5分钟前表中的行

33

我需要从以下示例表中获取所有与查询运行时间恰好5分钟前匹配的行。

查询将被计划每5分钟运行一次,以获取在该时间范围内创建的所有行。

CREATE TABLE mytable
(
    date timestamp without time zone NOT NULL,
    id numeric(8)
)

我尝试使用间隔选项,但由于我的表格将列定义为没有时区的时间戳,因此我没有得到我需要的正确信息。


3
(1) 将列命名为“date”不是一个好主意,因为它是一个保留字,会导致难看的引用问题。 (2) 把一个 timestamp 列称作 “date” 是一件奇怪的事情。 - mu is too short
1
而你的 id(实际上应该是 mytable_id 或其他描述性的名称)可能应该是一个 integerbigint 列。 - Erwin Brandstetter
2个回答

80

不确定为什么INTERVAL没有起作用:

SELECT * FROM mytable WHERE "date" >= NOW() - INTERVAL '5 minutes';

1
SELECT * FROM table_name WHERE "date_column_name" >= NOW() - INTERVAL '5 minutes';

2
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接