MYSQL 统计查询返回前端乱码解决办法。

产生的问题:

## 我的SQL 是这样写的(错误示范)
## CONVERT() 函数  想要格式化一下取值
## 因为我想取值的时候,保留小数点后面一位,所以使用函数 DECIMAL ( 18, 1 )

SELECT  
CONVERT (sum(if(m.s_industry = 1, m.ztz, 0))  / 10000, DECIMAL ( 18, 1 ) ) AS sumsindustrycyl

FROM  表名称

查询结果

数据库查询结果,同样都是double类型的一个在右边  ,一个在做左边

分辨方法:告诉你类型不同

前端渲染错误

MYSQL 统计查询返回前端乱码解决办法。_第1张图片

 

解决思路:

CONVERT() 函数通常用在时间格式化处理上面,用于转换类型

/*
二进制,同带binary前缀的效果 : BINARY    
字符型,可带参数 : CHAR()     
日期 : DATE     
时间: TIME     
日期时间型 : DATETIME     
浮点数 : DECIMAL      
整数 : SIGNED     
无符号整数 : UNSIGNED 
*/

CONVERT(data_type,expression_r_r[,style])
一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.

round()

对某个数值(字段)保留指定小数位数(四舍五入)

知道函数是干啥用的 ,就知道SQL怎么处理了

SELECT
ROUND(sum(if(m.s_industry = 1, m.ztz, 0))  / 10000,1)AS sumsindustrycyl
FROM  表名称

你可能感兴趣的:(mysql,数据库,sql)