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

PostgreSQL NOW()-INTERVAL和它的值有什么区别,postgresql,timescaledb,Postgresql,Timescaledb,我正在使用PostgreSQL 12.6和TimescaleDB 我有一个超表raws,它包含一个时间类型为timestamp的字段,没有时区NOTNULL 现在我有两个问题: 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 现在等于:2021-04-2016:48:41.57558

我正在使用PostgreSQL 12.6和TimescaleDB

我有一个超表raws,它包含一个时间类型为timestamp的字段,没有时区NOTNULL

现在我有两个问题:

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 现在等于:2021-04-2016: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有什么问题吗?或者我在格式方面遗漏了什么吗?

所以我尝试在一个新的数据库上重现这个错误,结果一切正常


查询从raws中选择*,其中时间>2021-04-05 16:48:41.575584+02;当我从转储导入所有数据时停止工作,因此即使我不知道具体是什么,该转储也存在问题。

请提供一些示例数据,说明第一次查询返回的时间值,以及查询的now值。将这些数据添加到你的问题中。我更新了帖子,希望这更清晰!我不相信。请拿出一个可重复的例子。一对观测值2021-04-20 16:48:41.575584+02-间隔“15天”将返回2021-04-05 16:48:41.575584+02,而不是2021-04-05 15:44:10.023066+02。这将对这一结果产生重大影响。2您返回的值是2021-04-08 00:00:00,28894786,请注意,“,”十进制分隔符与其他值的比较为XXXX.XXXX。这只是一个剪切/粘贴问题,还是您正在处理不同的地区?3我无法在Postgres的stock 12.5实例上复制。1我忘了更改它,但它确实返回2021-04-05 16:48:41.575584+02 2逗号分隔了我在raws中获得的两个值,抱歉,如果不清楚3我也将尝试使用stock实例,如果我也无法复制它,这会是TimescaleDB的问题吗?