MariaDB:如何使用STR_TO_DATE考虑本地日期格式?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()函数
(见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');
以上是关于MariaDB:如何使用STR_TO_DATE考虑本地日期格式?的主要内容,如果未能解决你的问题,请参考以下文章
我:正在尝试使用 STR_TO_DATE 但为啥返回 null?
使用 MariaDB 在 JSON_CONTAINS() 中未考虑德语变音符号
mysql 之 str_to_date ()函数 和date_format()函数