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

问题描述 投票:1回答: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()函数

(见here)。

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

mysql mariadb str-to-date
1个回答
1
投票

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');
© www.soinside.com 2019 - 2024. All rights reserved.