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

PostgreSQL列数据类型转换报错:格式'9.995.959'不兼容numeric

解决CSV导入后字段转numeric类型的格式错误问题

出现格式'9.995.959'与numeric类型不兼容的错误,是因为你把千分位分隔符(原逗号)替换成点后,字符串出现了多个小数点,而numeric类型只允许单个小数点(或无小数点)的数字格式。按以下步骤修复:

  • 第一步:清理数据中的多余小数点
    根据数据实际情况选择操作:

    1. 如果所有数据都是整数(无小数部分):直接移除所有小数点
      UPDATE 你的表名 SET 字段名 = REPLACE(字段名, '.', '');
      
    2. 如果数据包含小数部分(需要保留最后一个小数点):移除最后一个小数点之前的所有点
      UPDATE 你的表名
      SET 字段名 = CONCAT(
        REPLACE(SUBSTRING(字段名, 1, LENGTH(字段名) - POSITION('.' IN REVERSE(字段名))), '.', ''),
        SUBSTRING(字段名, LENGTH(字段名) - POSITION('.' IN REVERSE(字段名)) + 1)
      )
      WHERE 字段名 LIKE '%.%.%'; -- 仅处理存在多个小数点的行
      
  • 第二步:排查异常数据
    检查是否还有非数字格式的字符串,避免后续转换报错:

    SELECT 字段名 FROM 你的表名 WHERE 字段名 !~ '^[0-9]+(\.[0-9]+)?$';
    

    手动处理这些不符合格式的行。

  • 第三步:修改字段类型
    数据清理完成后,执行ALTER语句转换类型:

    ALTER TABLE 你的表名 ALTER COLUMN 字段名 TYPE numeric;
    

内容的提问来源于stack exchange,提问作者Simone Romualdi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:02:15