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

博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。

一、问题描述

       在执行查询操作时,报了这个错误,通过分析,不是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基础笔记公众号。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卧龙不言

欢迎关注java基础笔记公众号

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值