我有一个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()函数
(见here)。
考虑德语/瑞士符号,有没有办法加载日期列?
Monthname是德语(Dez)。如果你把它改成十二月就行了。
如果你想获得德语名称,你必须安装locale插件
1)看看是否已安装:
show plugins;
2)安装插件
INSTALL SONAME 'locales';
3)在my.ini中设置local或将其设置为全局
SET lc_time_names = 'de_DE';
select STR_TO_DATE('01-Dec-18', '%d-%b-%y');