我有一个要加载到表中的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)。
是否有一种方法可以考虑德语/瑞士符号来加载日期列?
答案 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');