1.FORMAT()数字千分位分割
FORMAT(X,D)
1.X需要格式化的数字
2.D保留小数位数
例:SELECT FORMAT(12334555.213,2)
2.ABS() 求绝对值
ABS(X)
SELECT ABS(-23);
SELECT ABS(21-23);
SELECT ABS(23);
3.四舍五入保留小数
ROUND(X,D)
1.X需要格式化的数字
2.D保留小数位数(不写时默认保留整数)
SELECT ROUND(5243.65,1);
注意:对于精确的数值, ROUND 函数使用四舍五入;对于近似值,则依赖于底层的C函数库,在很多系统中 ROUND 函数会使用“取最近的偶数”的规则。当存储数字字段为float和double两个浮点数时,刚巧有到边界值就会不准。
例: b表a 字段为float 值为2.65
SELECT ROUND(a,1) FROM b;
结果就为2.6
3、解决方案
方案一:可以在设计表结构的时候,对此类需要四舍五入的数值字段,设置为 DECIMAL 类型。
方案二:通过CAST()函数,将浮点型字段,转换为 DECIMAL格式,再进行ROUND 函数处理 。当需要处理的仅为单个表字段时,直接使用CAST()函数即可完成“浮点数”转换为“小数” 及 “四舍五入”计算
SELECT ROUND(CAST(a AS DECIMAL),1) FROM b;
方案三:可以加一个很小很小的数字(小到数据库保留小数位后两位),仅限测试使用
SELECT ROUND(a+0.0001,1) FROM b;
4.转换字符类型
SELECT CAST(112 AS signed)
5.求余
SELECT MOD(6,5)
6.求商
SELECT 5 div 2
7.求和
SUM()
SELECT SUM(fq_amount) FROM loan_amount WHERE DATE_FORMAT(create_time,’%Y-%m-%d’) = DATE_FORMAT(NOW(),’%Y-%m-%d’)
8.求平均值
AVG()
SELECT AVG(fq_amount) FROM loan_amount WHERE DATE_FORMAT(create_time,’%Y-%m-%d’) = DATE_FORMAT(NOW(),’%Y-%m-%d’)
9.求最大值
MAX()
SELECT MAX(fq_amount) FROM loan_amount WHERE DATE_FORMAT(create_time,’%Y-%m-%d’) = DATE_FORMAT(NOW(),’%Y-%m-%d’)
10.求最小值
MIN()
SELECT MIN(fq_amount) FROM loan_amount WHERE DATE_FORMAT(create_time,’%Y-%m-%d’) = DATE_FORMAT(NOW(),’%Y-%m-%d’)