mysql对数值进行取整操作之round,format,truncate区别

在数据库操作中,遇到将以角为单位的金额字段转换为元并进行整数取整的问题。原始代码使用`format`函数在聚合时导致错误,因结果为字符串。解决方案是使用`round`或`truncate`函数。示例展示了`format`、`round`和`truncate`的区别,`round`和`truncate`能正确返回整数,适合于金额字段的整数转换和聚合操作。
摘要由CSDN通过智能技术生成

一、问题

数据库存储金额字段是以角为单位,需要输出以元为单位,并且只取整数。
使用format可以达到效果,但在聚合金额时便会出错,因为format得到的结果是字符串。

原代码:

select my,sum(my) from
(select format(sum(amount)/100,0) my
from Tabletest) a
group by my
1,999,999,999,999    
1

二、知识点

round(d,n) 四舍五入取整

format(d,n) 四舍五入取整,加千分位的分隔符逗号

truncate(d,n) 直接截取整数部分

d为数值,n为保留小数点后几位小数

select 9898098 as show_pv,
       format(9898098/100,0) as num1,
       round(9898098/100,0) as num2,
       truncate(9898098/100,0) as num3
from Tbaletest
limit 1 

结果:

9898098,

"98,981",
98981,
98980


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值