如何在 PostgreSQL 中设置带有日期和时间的两列之间的间隔?

How I can set interval between two column with date and time in PostgreSQL?

我想在2列之间设置天或小时的时间间隔来获取最新的实际记录,如果我不设置这个,我在按天过滤时得到过时的信息。

表A:create_date 表 B:last_access_date

所以我这样做了

SELECT  *
FROM acc_zone_person
WHERE create_time::date = last_access_time::date 

我每天获取的信息没有过时的信息,但是半夜的所有信息都在23:00 - 00:00之间 丢弃 我想设置间隔,以便 19:00 中的晚间信息一直显示到 06:00 数据。

我用过

SELECT  *
FROM acc_zone_person
WHERE last_access_time::date >= now() - interval '12 hours'

这次切换到旧日期时,我没有得到任何数据,只有 12 小时内的数据

所以我需要找到一种方法来做这样的事情

SELECT  *
FROM acc_zone_person
WHERE create_date::date >= last_access_time - interval '12 hours'

现在应该取create_date,得到last_access_time

的12小时间隔数据

我在这里有点困惑。你为什么不能只使用你发布的最后一个查询?它不起作用吗?您只需要将 last_update_time 转换为日期吗?

根据你自己的说法:"It should take create_date as NOW ... "

SELECT  *
FROM acc_zone_person
WHERE now()::date >= last_access_time - interval '12 hours'