1

我有一个要加载到表中的 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() 函数

(见这里)。

考虑到德语/瑞士符号,有没有办法加载日期列?

4

1 回答 1

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');
于 2019-03-15T15:38:19.810 回答