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

PostgreSQL 14.3:JSONB字符串直接转整数失败,求直接转换方法

PostgreSQL jsonb字符串转整数的解决方案

核心原因

->操作符返回的是jsonb类型,即便存储的是"1234"这种字符串形式的数字,它本质仍是jsonb对象。PostgreSQL的类型系统不支持直接将jsonb字符串强制转换为integer,必须先转为text类型再做整数转换。

可选写法(本质都是先转文本再转整数)

  • 你当前用的(column_name ->> json_key_name)::integer已经是最简洁的写法之一,->>就是PostgreSQL专门提供的、直接提取jsonb字段文本值的操作符。
  • 如果你偏好链式转换的写法,也可以写成:
    (column_name -> json_key_name)::text::integer
    
  • 若需要处理带格式的数字字符串(比如含千分符),可以用to_number函数:
    to_number(column_name ->> json_key_name, '9999')
    

结论

不存在完全跳过文本转换的"直接转整数"方法,因为jsonb类型的字符串无法直接映射到PostgreSQL的integer类型。你当前使用的->>+::integer就是最优的简洁实现方式。


内容的提问来源于stack exchange,提问作者Georg Heiler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:18:35