700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 实测MySQL 查询结果保留两位小数函数的区别汇总

实测MySQL 查询结果保留两位小数函数的区别汇总

时间:2018-08-31 01:11:37

相关推荐

实测MySQL 查询结果保留两位小数函数的区别汇总

MySQL查询结果保留两位小数常用的几个函数的区别,使用场景。

1、随机函数format(x,d)

2、格式化小数函数format(x,d)

例如:

selectformat(23456.789,2);# 或selectformate(salary,2);

输出:23,456.79

实测:

原表部分信息:

SQL语句:

SELECT客户,format(sum(结算金额) / 10000,2) AS 总结算金额FROM销售表GROUP BY客户ORDER BY总结算金额 DESC

结果:

总结:结果成功保留两位小数,但是排序不起作用了!

查看文档:Formats the number X to a format like '#,###,###.##', rounded to D decimal places, and returns the result as a string. If D is 0, the result has no decimal point or fractional part.整数部分超过三位的时候以逗号分割,并且返回的结果是string类型的。

3、截取函数truncate(x,d)

select truncate(23456.789,2); # 或select truncate(salary,2);

输出:23456.78

truncate()函数会将小数部分2位以后的值直接舍去。

4、类型转换函数convert(expr,type)

select convert(23456.789,decimal(10,2)); #或select convert(salary,decimal(10,2));

输出:23456.79

convert()函数会对小数部分进行四舍五入操作,解释一下decimal(10,2),它表示最终得到的结果整数部分位数加上小数部分位数小于等于10,小数部分位数2。

实操中发现Navicat自动将语句转换成了:

cast((sum(结算金额) / 10000) as decimal(10,2))

原表部分信息:

完整代码:

SELECT客户,cast((sum(结算金额) / 10000) AS DECIMAL (10, 2)) AS 总结算金额FROM销售表GROUP BY客户ORDER BY总结算金额DESC

输出结果:

总结:结果成功保留两位小数,排序也正常!

5.CAST函数语法规则是:Cast(字段名 as 转换的类型 )

其中类型可以为:

CHAR[(N)] 字符型

DATE 日期型

DATETIME 日期和时间型

DECIMAL float型

SIGNED int

TIME 时间型

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。