在逗号mysql之后只存储数字

时间:2013-08-04 13:49:42

标签: mysql

如何在逗号后用mysql函数只保存数字?

例如:16.03 ----> 03

3 个答案:

答案 0 :(得分:2)

如果我理解正确,你需要数字的小数部分。在MySQL中,您可以使用mod()

执行此操作
select mod(14.03, 1)

收益率“0.03”。

编辑:

Juhana提出了一个非常好的观点。 MySQL可以在数字和字符串之间自由转换,因此您可以使用substr()

select substr(14.03, locate('.', 14.03)+1)

如果您想要逗号后的数字,请将'.'替换为','

答案 1 :(得分:0)

如果你的值来自一个表,你必须准备好处理一些值可能是整数的事实(即:转换为字符串时没有小数分隔符):

SELECT IF(LOCATE('.', value), SUBSTRING_INDEX(value,'.', -1), "0") FROM tbl;

请参阅http://sqlfiddle.com/#!2/062c8/11

答案 2 :(得分:0)

或者简单地说:

14.03 % 1

--> 0.03

也适用于负数:

-14.03 % 1

--> -0.03

如果您正好在小数点后面的两位数之后(并且您只处理正数),您可以执行以下操作:

substring(format( num %1,2),3,2)  -- num being the column (integer of float, double ...)
--> 03  -- for num=14.03
--> 00  -- for num=14
--> 05  -- for num=14.046739

当然,如果您想要所有数字,可以省略format()

substring(num %1,3,2)
--> 03      -- for num=14.03
-->         -- for num=14
--> 046739  -- for num=14.046739

但这使得整数案件非常难看。