You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL使用time字段生成tsrange更新表时语法报错求助

PostgreSQL timerange字段更新语法错误解决办法

问题场景

你的PostgreSQL表包含两个time without time zone类型字段F1、F2,新增timerange类型的calde字段后,执行update Table1 set timerange=[F1,F2]时触发语法错误:

ERROR:  syntax error at or near "["

错误原因

PostgreSQL不支持直接用[F1,F2]这种语法创建范围类型,范围类型需要通过构造函数或规范字面量生成。

正确解决方案

推荐两种可行写法,优先使用构造函数方案:

方案1:使用timerange构造函数(推荐)

直接调用timerange()构造函数传入起始、结束时间,还可指定边界规则(默认左闭右开[)):

-- 默认左闭右开
UPDATE Table1 SET calde = timerange(F1, F2);

-- 自定义边界(比如左右都闭合)
UPDATE Table1 SET calde = timerange(F1, F2, '[]');

方案2:使用范围字面量

通过字符串拼接生成符合格式的范围字面量,再强制转换为timerange类型:

UPDATE Table1 SET calde = ('[' || F1 || ',' || F2 || ')')::timerange;

内容的提问来源于stack exchange,提问作者Lamia Mniena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:12:35