Преобразование / приведение строки в число c с голландским языком - PullRequest
1 голос
/ 11 января 2020

В моей базе данных PostgreSQL есть строка типа 12,3, которую я хочу преобразовать / преобразовать в числовой c или двойной тип. Если бы у меня была десятичная точка Engli sh, я мог бы просто набрать '12.3'::numeric(10,2).

Я могу, конечно, заменить запятую на REPLACE, но это выглядит как "хаки", так как это проблема с локалью , а не проблема обработки строк.

Есть ли что-то похожее на опцию "cast with locale" в PostgreSQL (я использую версию 10.10)?

1 Ответ

0 голосов
/ 11 января 2020

Вы пытались установить переменную lc_numeric?

(язык США)

SET lc_numeric = 'en_US.UTF-8';
SELECT to_number('12,3','99G999D9S');

 to_number 
-----------
       123

(язык Германии)

SET lc_numeric = 'de_DE.UTF-8';
SELECT to_number('12,3','99G999D9S');

 to_number 
-----------
      12.3

Дополнительная информация: to_number функция форматирования

...