MariaDB: Как считать локальный формат даты с STR_TO_DATE? - PullRequest
1 голос
/ 15 марта 2019

У меня есть CSV-файл, который я хочу загрузить в таблицу.Он имеет столбец со следующим форматом даты:

'%d-%b-%y'

Например: '01-Dez-18'.Если я загружаю этот файл с учетом формата:

IF(@entry_dt = '',NULL,STR_TO_DATE(@entry_dt, '%d-%b-%y'))

, я получаю предупреждение:

Неверное значение даты-времени: '01 -Dez-12 'для функции str_to_date

Это связано с форматом столбца, который является de_CH, но локальные и глобальные настройки en_US.Именно поэтому 01-Jan-12 был загружен правильно.Изменение локальной настройки

SET lc_time_names = 'de_CH';

не работает, поскольку:

lc_time_names не влияет на функцию STR_TO_DATE () или GET_FORMAT ()

(см. здесь ).

Есть ли способ загрузить столбец даты, учитывая немецкую / швейцарскую нотацию?

1 Ответ

1 голос
/ 15 марта 2019

Название месяца на немецком языке (Dez).Если вы измените его на Dec, оно будет работать.

, если вы хотите получить немецкие имена, вы должны установить плагин locale

1), если он уже установлен:

show plugins;

2) установить плагин

INSTALL SONAME 'locales';

3) установить локальный или установить его глобальный в my.ini

SET  lc_time_names = 'de_DE';
select STR_TO_DATE('01-Dec-18', '%d-%b-%y');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...