timescaledb - 如何更改时间列以在 TimescaleDB 中包含时区?
问题描述
如何在 TimescaleDB 中将列类型从时间戳更改为 timestamptz?
我使用摄取脚本outflux将数据从 InfluxDB 获取到 TimescaleDB。这创建了使用时间戳作为时间列的表。
CREATE TABLE conditions (
time TIMESTAMP NOT NULL,
location TEXT NOT NULL,
temperature DOUBLE PRECISION NULL
);
我尝试使用标准的 alter命令将其转换为 timestamptz
alter table conditions
alter column "time" type timestamptz using ("time"::timestamptz)
但这产生了以下错误
ERROR: check constraint "constraint_1007" of relation "_hyper_12_1007_chunk" is violated by some row
CONTEXT: SQL statement " ALTER TABLE _timescaledb_internal._hyper_12_1007_chunk ADD CONSTRAINT constraint_1007 CHECK ( "time" >= TIMESTAMPTZ '2020-12-03 01:00:00+01' AND "time" < TIMESTAMPTZ '2020-12-10 01:00:00+01' ) "
PL/pgSQL function _timescaledb_internal.chunk_constraint_add_table_constraint(_timescaledb_catalog.chunk_constraint) line 42 at EXECUTE
SQL state: 23514
解决方案
推荐阅读
- java - 具有多个子报表的 Jasper 报表
- php - 在自定义请求 Laravel 中获取模型实例
- javascript - 滚动到元素时猫头鹰轮播自动播放不起作用
- python - 从 python 字典中获取所有子键的列表
- excel - 将数据从多个工作簿复制和组织到另一个工作簿
- html - HTML 输入字段右填充
- typescript - next.js/typescript/webpack 的问题:“未处理的拒绝(ReferenceError):未定义 XYZ”
- ios - LAContext.biometryType 总是返回 LABiometryTypeTouchID
- waf - 使用多个依赖输入文件生成 WAF 代码
- oracle-adf - 如何使 af:inputText 在 adf 中可调整大小?