在使用数据库进行查询的时候可能要对数据类型进行相应的转换
Postgres数据库进行转换的方式如下
比如数据库有两个字段都是int类型的,想要对他进行除法操作,我这里显示是获取成功率
select *,successful/allnumber successrate from sys_audit;
结果如下没有保留相应的小数,也没有进行四舍五入运算
可以使用cast(字段名 as 数据类型)进行转换
select *,cast(successful as float)/allnumber successrate from sys_audit;
还有另一种方式 字段名 :: 数据类型
select *,successful::float/allnumber successrate from sys_audit;
下图所示没有保留指定小数,没有达到预期效果
可以通过decimal(P,D) 再对数据进行一次转换
P是表示有效数字数的精度。 P范围为1〜65。
D是表示小数点后的位数。 D的范围是0~30。MySQL要求D小于或等于(<=)P。
select *,cast(successful::float/allnumber as decimal(6,3) successrate from sys_audit;
Mysql的数据转换方式
- 使用 convert 关键字 convert(字段,数据类型)