MariaDB:如何考虑STR_TO_DATE的本地日期格式?

时间:2019-03-15 15:19:27

标签: mysql mariadb str-to-date

我有一个要加载到表中的csv文件。它的列具有以下日期格式:

'%d-%b-%y'

例如:'01-Dez-18'。如果我考虑以下格式加载此文件:

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

我收到警告:

  

日期时间值不正确:函数str_to_date的日期为'01 -Dez-12'

这是由于列的格式为de_CH,但是本地和全局设置为en_US。这就是正确装入01-Jan-12的原因。更改本地设置

SET lc_time_names = 'de_CH';

由于以下原因不起作用:

  

lc_time_names不会影响STR_TO_DATE()或GET_FORMAT()函数

(请参阅https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity)。

是否有一种方法可以考虑德语/瑞士符号来加载日期列?

1 个答案:

答案 0 :(得分:1)

月份名称为德语(Dez)。如果您将其更改为Dec,它将起作用。

如果要获取德语名称,则必须安装语言环境插件

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');