1

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

例如:16.03---->03

4

3 回答 3

3

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

select mod(14.03, 1)

产生“0.03”。

编辑:

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

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

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

于 2013-08-04T13:55:44.520 回答
0

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

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

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

于 2013-08-04T14:29:15.593 回答
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

但这使得整数大小写非常难看。

于 2013-08-04T14:49:18.130 回答