show_chunks()在将interval作为参数时不显示块



我在timescaleDB中创建了一个块大小为1小时的超表drt

| random | time                       |
| ------ | -------------------------- |
| 4      | 2021-10-20 12:34:08.070423 |
| 5      | 2021-10-20 12:58:00.568898 |

SELECT show_chunks('drt')

在输出中有一个块但是当我运行

SELECT show_chunks('drt', older_than => INTERVAL '2 hours')

没有输出。我不明白为什么。

select now() - interval '2 hours' ;

2021-10-20 14:28:35.105981+00

更新:我跑

select show_chunks('drt', older_than=>interval 'N hours');

多次,改变n的值。昨天我得到了N<=18的输出。但是今天,在设置了N<=11的值之后,我看到了相同的块。这个查询应该返回在N小时之前创建的所有块。N应该随时间增加。对吧?我遗漏了什么?请帮助。

您是否检查过这是否可能是时区问题?您可以直接在timescaledb_information.chunks视图中检查块。

看看它返回给你多少块:

select * from timescaledb_information.chunks where hypertable_name = 'drt' and range_end < now() -  INTERVAL '1 hour' ;

请注意,这里是15:37对我(GMT-3),但我的服务器在外面:

select now() -  INTERVAL '1 hour';
┌───────────────────────────────┐
│           ?column?            │
├───────────────────────────────┤
│ 2021-10-20 17:36:48.833827+00 │
└───────────────────────────────┘

您可以检查您拥有的数据类型:

select pg_typeof(now() -  INTERVAL '1 hour');
┌──────────────────────────┐
│        pg_typeof         │
├──────────────────────────┤
│ timestamp with time zone │
└──────────────────────────┘

相关内容

  • 没有找到相关文章

最新更新