[Err] ERROR: invalid input syntax for integer: "1.0"

一、问题描述

       在执行查询操作时,报了这个错误,通过分析,不是sql语句语法错误,如果是sql语法错误,就会报哪一行有问题,这个一看就是查询PostgreSQL数据类型搞错了,一个不是bigint类型的数据,数据库中保存的值为 1.0 .查询的时候让其作为bigint类型导致的。sql示例:

select  (
        ext ->> 'weekly_outpatient_days'
    ) :: BIGINT AS weekly_outpatient_days from test

二、解决方案

拿到问题sql,查看哪些字段被定为bigint类型了,然后改成其他类型的,我改为numeric类型就顺利解决了。

select  (
        ext ->> 'weekly_outpatient_days'
    ) :: numeric AS weekly_outpatient_days from test

三、总结

      出现这种问题的原因还是对PostgreSQL数据类型不了解。

1、数字类型如下

2、字符串类型如下:

 

3、一般整数类型用Integer或者bigint,高精度类型用 numeric,字符串类型用text,具体的细化请查询表格。有帮助的话,欢迎关注java基础笔记公众号。

猜你喜欢

转载自blog.csdn.net/jiankang66/article/details/103968174