PostgreSQL NOW() - INTERVAL 和它的值有什么区别

PostgreSQL What's the difference between NOW() - INTERVAL and its value

我正在使用 PostgreSQL 12.6 和 TimescaleDB。

我有一个超表 raws,其中包含类型为 timestamp without time zone NOT NULL 的字段 "time"

现在我有 2 个查询:

select * from raws where time > NOW() - INTERVAL '15 day';

这个给了我这个:

2021-04-08 00:00:00
2021-04-08 00:10:00
2021-04-08 00:20:00

NOW() 等于:2021-04-20 16:48:41.575584+02

但是现在,如果我取 NOW() - INTERVAL '15 day' 的值,即此时 2021-04-05 16:48:41.575584+02,然后将其作为我的查询:

select * from raws where time > '2021-04-05 16:48:41.575584+02';

它不再有效:我得到 0 个结果,但没有错误。

那么是什么导致第二个查询失败?

TimescaleDB 或 PostgreSQL 有问题吗,还是我遗漏了一些格式?

所以我尝试在新数据库上重现该错误,一切正常。

当我从一个转储中导入我的所有数据时,查询 select * from raws where time > '2021-04-05 16:48:41.575584+02'; 停止工作,所以即使我不知道到底是什么,那个转储也有问题。