PostgreSQL iso_8601下YEAR TO MONTH间隔P0Y返回PT0S问题
PostgreSQL iso_8601间隔模式下年月类间隔值输出错误
经测试验证,PostgreSQL将intervalstyle参数设置为iso_8601时,YEAR TO MONTH类型的INTERVAL值存在ISO 8601格式渲染异常。
复现步骤
依次执行以下SQL命令即可稳定复现问题:
SET intervalstyle = 'iso_8601'; CREATE TABLE "OE1".T (I INTERVAL YEAR TO MONTH); INSERT INTO "OE1".T VALUES ('P0Y'); SELECT * FROM "OE1".T;
查询语句的实际执行输出如下:
i ------ PT0S (1 row)
问题判定
- 测试插入值:
'P0Y',为符合ISO 8601规范的0年时长间隔表示 - 预期输出:
P0Y - 实际输出:
PT0S,为ISO 8601规范下0秒时长间隔的表示
实际返回结果和字段的
YEAR TO MONTH类型定义、插入的原始值语义均不匹配,不符合ISO 8601时间间隔格式的输出规则。
内容的提问来源于stack exchange,提问作者mark d drake
相关产品推荐
相关产品推荐

