mysql字符串转浮点数的隐式转换

mysql字符串转浮点数的隐式转换,第1张

参考文章: https://www.jb51.net/article/101531.htm

mysql在进行不同类型的参数的运算时会产生隐式转换。其中,当需要把字符串转为浮点数的时,mysql从左边开始对字符串做转换处理的,转换规则如下:

需要用到两个函数。

mysql 转换类型用两个函数:CONVERT(字段/需要转换的值,类型) CAST(字段/需要转换的值 AS 类型)。

因为之前设计,将某表金额字段类型设置为varchar,现在需要对此表根据用户,和表数据的类型进行汇总,计算时,需要转换类型。

可能做程序的人都知道,float类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理。这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12.幸好mysql提供了两个数据类型:numeric和decimal,这两种数据类型可以轻松解决上面的问题:NUMERIC和DECIMAL类型被MySQL以同样的类型实现,这在SQL92标准中是允许的。他们用于保存对准确精度有重要要求的值,例如与金钱有关的数据。当以它们中的之一声明一个列时,精度和数值范围可以(通常是)被指定;例如:salaryDECIMAL(5,2)在这个例子中,5(精度(precision))代表重要的十进制数字的数目,2(数据范围(scale))代表在小数点后的数字位数。在这种情况下,因此,salary列可以存储的值范围是从-99.99到99.99。(实际上MySQL在这个列中可以存储的数值可以一直到999.99,因为它没有存储正数的符号)。译者注:M与D对DECIMAL(M,D)取值范围的影响类型说明取值范围(MySQL=3.23)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5928310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-08
下一篇 2023-03-08

发表评论

登录后才能评论

评论列表(0条)

保存