В MySql, как добавить недостающие десятичные дроби в столбец валюты? - PullRequest
1 голос
/ 09 февраля 2012

Мне не нужен символ валюты, но у меня есть такие значения, как;

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

Я хочу иметь возможность сделать их 49.00, 51.00 и 45.00 соответственно.

Как я могу сделать это в MySQL, если это возможно?Можно предположить, что ВСЕ значения в столбце 4500 записей могут использовать десятичную дробь 2 справа.

Ответы [ 4 ]

2 голосов
/ 09 февраля 2012

должно делиться на 100, но это может зависеть от типа данных поля. если он не установлен с точностью, то вам нужно будет привести поле к десятичной дроби, а затем разделить на 100 следующим образом.

CAST('field' AS DECIMAL(10,2))/100  
1 голос
/ 09 февраля 2012

Любая причина деления на 100 не будет делать то, что вам нужно? Смотрите ниже:

(РЕДАКТИРОВАТЬ - Как указано в ответе Брайана, кастинг, вероятно, лучше)

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)
0 голосов
/ 09 февраля 2012
UPDATE `table`
SET `column` = ROUND(`column`/100, 2)
WHERE 1
0 голосов
/ 09 февраля 2012

Использование:

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

...