Select 每小时之间的数据

Select data between hour by hour basis

我正在使用postgresql,我的想法是select 24 小时之前创建的数据,我使用以下方法检索这些数据

SELECT * FROM table
WHERE created < now() - '24 hours'::interval

在此我尝试添加一个条件,使用 BETWEEN 子句在小时基础之间获取数据,为此我的查询如下

SELECT * FROM table 
WHERE created < now() - '24 hours'::interval 
AND created BETWEEN {condition} AND {condition}

我的 created 列在带有时区的时间戳中,当我尝试使用

extract(hour from created)

在这种情况下,我没有得到任何结果。我不知道我哪里做错了。还有其他方法可以实现吗?

如有任何帮助,我们将不胜感激。

如果您想检查过去 24 小时以外发生的每小时范围,请使用如下内容:

SELECT *
FROM yourTable 
WHERE created <  now() - '24 hours'::interval AND
    EXTRACT(hour from created) >= 10 AND EXTRACT(hour from created) < 11;

这将查找过去 24 小时以外的所有记录,这些记录的时间在上午 10 点到 11 点之间。

Demo