Вставьте неанглийские десятичные точки в MySQL - PullRequest
6 голосов
/ 08 июля 2011

Как заставить mysql понимать неанглийские десятичные точки в целочисленных / плавающих полях?

setLocale(LC_ALL, 'da_DK.ISO-8859-1');

например:

0,25 will be inserted as 0
0.25 will be inserted as 0.25

Ответы [ 4 ]

13 голосов
/ 08 июля 2011

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

INSERT INTO a(b,c) VALUES (3,4,5) было бы неоднозначно.

Должно ли это привести к b=3.4 , c=5 или b=3 , c=4.5?

2 голосов
/ 08 июля 2011

На номера не влияют настройки локали (тоже самое в SQL Server).

Таким образом, вы должны отправить как "0,25"

0 голосов
/ 13 декабря 2013

Возможно, вы захотите попробовать что-то вроде REPLACE ('3,1415926', ',', '.')

0 голосов
/ 08 июля 2011

Я думаю, что проще всего было бы использовать оболочку для вашего объекта mysql, которая установит языковой стандарт en_US.utf8 перед вашим запросом и после того, как запрос вернет его обратно в da_DK.ISO-8859-1.

Похоже, это делает противоположное тому, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...