一、问题描述
在执行查询操作时,报了这个错误,通过分析,不是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,具体的细化请查询表格。