我正在使用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}
我的创建的列处于带时区的时间戳中,当我尝试使用
时提取(创建后的小时数)
在这种情况下,我没有得到任何结果。我不知道我在哪里做错了。还有其他方法可以实现这一目标吗?
任何帮助将不胜感激。
答案 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点之间。