You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL新手求助:CSV导入时处理两种日期格式的标准方法?

处理CSV中两种日期格式的MySQL导入方案
  • 你的处理方式是MySQL处理非标准日期格式的标准且可靠的操作,很多开发者都会用这种“先导入变量再转换”的思路,不用怀疑合理性。

  • 如果你觉得之前的写法繁琐,可以用COALESCE()函数简化转换逻辑,一次处理两种格式:
    假设CSV里的日期列是raw_date,要导入到表的event_date字段(类型推荐用DATETIME,纯日期会自动补00:00:00),示例代码:

    LOAD DATA INFILE '/path/to/your/file.csv'
    INTO TABLE your_target_table
    FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    IGNORE 1 ROWS -- 如果CSV有表头就加这行
    (@raw_date, col1, col2, ...) -- 把日期列映射到变量@raw_date,其他列正常对应
    SET event_date = COALESCE(
        STR_TO_DATE(@raw_date, '%d/%m/%Y %H:%i'), -- 先匹配带时间的格式
        STR_TO_DATE(@raw_date, '%d/%m/%Y')        -- 匹配不上再试纯日期格式
    );
    

    COALESCE()会返回第一个非NULL的转换结果,一行代码就能搞定两种格式的适配,比单独写分支简洁很多。

  • 额外提醒:

    • 如果CSV里存在无效日期格式,STR_TO_DATE会返回NULL,你可以在LOAD DATA末尾加WHERE event_date IS NOT NULL过滤无效行,或者先导入到临时表,再排查错误数据。
    • 目标字段如果用DATE类型,带时间的日期会被自动截断到日期部分,根据你的业务需求选择合适的字段类型。

内容的提问来源于stack exchange,提问作者Walt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 11:42:34