PostgreSQL日期加减操作报interval类型输入语法错误求助
报错原因
PostgreSQL 对未显式声明类型的字符串字面量,会根据运算符右侧的类型做隐式类型匹配:你的语句中右侧是INTERVAL类型,PostgreSQL 会尝试将左侧的'2018-08-20 00:00:00.0'字符串转换为INTERVAL类型,而该时间字符串不符合INTERVAL的输入格式,因此触发类型转换错误。
解决方法
- 方法1:显式将时间字符串强转为TIMESTAMP类型后运算,写法最简洁
SELECT '2018-08-20 00:00:00.0'::TIMESTAMP + INTERVAL '1 DAY';
- 方法2:使用
TO_TIMESTAMP函数指定格式转换,适配非标准时间格式的场景稳定性更高
SELECT TO_TIMESTAMP('2018-08-20 00:00:00.0', 'YYYY-MM-DD HH24:MI:SS.MS') + INTERVAL '1 DAY';
- 方法3:如果仅需要处理日期维度的加减,可转成DATE类型后直接和整数运算
SELECT '2018-08-20'::DATE + 1;
内容的提问来源于stack exchange,提问作者ga7202
相关产品推荐
相关产品推荐

