【问题标题】:MariaDB: How to consider local date format with STR_TO_DATE?MariaDB:如何使用 STR_TO_DATE 考虑本地日期格式?
【发布时间】:2023-03-06 01:12:01
【问题描述】:

我有一个 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】:

    月份名称是德语 (Dez)。如果你把它改成 Dec 就可以了。

    如果您想获得德语名称,您必须安装 locale Plugin

    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');
    

    【讨论】:

    • Ì 做了步骤 2) 和 3) 但它不起作用。在文档中提到lc_times_names 不会影响STR_TO_DATE。也许如果我在全球范围内改变?如何全局更改?
    猜你喜欢
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 2013-06-04
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多