在MySql中如何将缺少的小数添加到货币列?

时间:2012-02-09 16:35:11

标签: mysql decimal

我不想要货币符号,但我有类似的值;

4900
4900
4900
4900
5100
5100
5100
5100
5100
5100
5100
5100
5100
4500

我希望能够分别制作49.0051.0045.00

如果可能的话,如何在MySQL中执行此操作?可以假设4500条记录中的所有值都可以使用右侧的小数2位。

4 个答案:

答案 0 :(得分:2)

应该能够除以100,但它可能取决于字段的数据类型。如果未设置精度,则必须将该字段转换为小数,然后再除以100。

CAST('field' AS DECIMAL(10,2))/100  

答案 1 :(得分:1)

任何除以100的理由都不能满足您的需求吗?见下文:

(编辑 - 正如Brian的回答所指出的那样,铸造可能是最好的)

mysql> select * from testTable;
+---------+
| testNum |
+---------+
|    4900 | 
|    4900 | 
|    4900 | 
|    5100 | 
+---------+
4 rows in set (0.00 sec)

mysql> select ROUND(CAST(testNum AS DECIMAL)/100,2) from testTable;
+---------------------------------------+
| ROUND(CAST(testNum AS DECIMAL)/100,2) |
+---------------------------------------+
|                                 49.00 | 
|                                 49.00 | 
|                                 49.00 | 
|                                 51.00 | 
+---------------------------------------+
4 rows in set (0.00 sec)

答案 2 :(得分:0)

使用:

mysql> SELECT FORMAT(12332.123456, 4);
        -> '12,332.1235'
mysql> SELECT FORMAT(12332.1,4);
        -> '12,332.1000'
mysql> SELECT FORMAT(12332.2,0);
        -> '12,332'

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_format

答案 3 :(得分:0)

UPDATE `table`
SET `column` = ROUND(`column`/100, 2)
WHERE 1