2014-01-17 4 views
1

Я установил свою систему C# в компьютер с Win XP, формат числа для десятичного разделителя был запятой вместо десятичной точки, но это мешает обновлению MySQL, потому что когда я загружаю информацию в моя система C# имеет формат «0,11», и система рассматривает запятую как часть запроса MySQL. Это проблема, потому что каждый раз, когда я хочу обновлять регистр, я должен вручную изменить запятую для десятичной точки или иначе она выдает исключение.MySQL с запятой на десятичную запятую

Есть ли способ изменить все запятые для десятичных точек в моей базе данных для определенного столбца? Даже если я уже изменил региональную конфигурацию, база данных хранит запятую в ранее зарегистрированных элементах.

Моя структура таблицы:

CREATE TABLE `inventario` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `cla` varchar(100) NOT NULL, 
    `des` varchar(500) NOT NULL, 
    `lin` varchar(3) NOT NULL, 
    `cal` varchar(20) NOT NULL, 
    `uen` varchar(20) NOT NULL, 
    `can` double NOT NULL, 
    `fei` varchar(10) NOT NULL, 
    `fec` varchar(10) NOT NULL, 
    `obs` varchar(500) NOT NULL, 
    `ppu` double NOT NULL, 
    `pl1` double NOT NULL, 
    `pl2` double NOT NULL, 
    `pl3` double NOT NULL, 
    `pl4` double NOT NULL, 
    `prm` double NOT NULL, 
    `pr1` varchar(50) NOT NULL, 
    `pr2` varchar(50) NOT NULL, 
    `mnm` double NOT NULL, 
    `max` double NOT NULL, 
    `dias` int(10) NOT NULL DEFAULT '1', 
    `categoria` varchar(50) NOT NULL, 
    PRIMARY KEY (`id`,`cla`), 
    UNIQUE KEY `constr_cla` (`cla`) 
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8; 

Столбцы мне нужно обновить те, с двойным типом. Спасибо.

+0

Вы пробовали ограждающих значения в двойных кавычках? –

+1

Со временем эти аббревиатуры сведят вас с ума. Кроме того, в любое время, когда вы отправляете сигналы на море x1, x2 и т. Д. Shuold, звоните! – Strawberry

+0

Возможный дубликат [Изменить десятичный разделитель в MySQL] (http://stackoverflow.com/questions/8669212/change-decimal-separator-in-mysql) – Strawberry

ответ

2
SELECT REPLACE(CAST(your_double AS CHAR), ',', '.') 

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

Версия обновления будет

UPDATE your_table 
SET your_double=CAST(REPLACE(CAST(your_double AS CHAR), ',', '.') AS DOUBLE) 
+0

Этот запрос заменяется только в select, он работает, но я бы предпочел что изменит данные, есть ли версия обновления этого запроса? Спасибо. – user3063952

Смежные вопросы