每小时选择数据

时间:2018-10-08 02:25:17

标签: sql postgresql datetime between

我正在使用postgresql,我的想法是选择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}

我的创建的列处于带时区的时间戳中,当我尝试使用

  

提取(创建后的小时数)

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

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您要检查过去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