在QuestDB中创建INTERVAL类型列报错,是否支持该类型?
在QuestDB中创建INTERVAL类型列的问题
QuestDB不支持将INTERVAL类型作为持久化列存储,你遇到的non-persisted type: interval错误正是因为这个原因。
虽然QuestDB支持INTERVAL类型用于查询阶段的时间计算(比如时间戳加减操作),但该类型属于临时计算类型,无法定义为表的持久化列。
替代方案
用数值类型存储时间间隔的具体单位数值,查询时再转换为INTERVAL类型进行计算:
示例1:用
LONG存储毫秒级间隔
创建表:CREATE TABLE tasks ( id LONG, task_interval_ms LONG, ts TIMESTAMP ) TIMESTAMP(ts) PARTITION BY DAY;查询时转换为INTERVAL并计算:
SELECT id, ts, ts + INTERVAL task_interval_ms MILLISECOND AS next_run_time FROM tasks;示例2:用
LONG存储天数级间隔
创建表:CREATE TABLE tasks ( id LONG, task_interval_days LONG, ts TIMESTAMP ) TIMESTAMP(ts) PARTITION BY DAY;查询时转换为INTERVAL并计算:
SELECT id, ts, ts + INTERVAL task_interval_days DAY AS next_run_time FROM tasks;
内容的提问来源于stack exchange,提问作者Andrei Pechkurov
相关产品推荐
相关产品推荐

