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

如何将CSV数据导入MySQL并得到24小时制TIME类型数据

解决CSV中12小时制单字母标识时间导入MySQL为24小时制TIME类型的问题

问题原因分析

你之前的尝试失败核心有两点:

  • 使用STR_TO_DATE时误用%H(24小时制小时格式符),但源数据是12小时制,应使用%h/%I;
  • 源数据的AM/PM是单个字母A/P,而%p格式符仅匹配完整的AM/PM字符串,导致匹配失败返回NULL。

正确解决步骤

1. 先导入为VARCHAR类型

不要直接导入为TIME类型,先将Issue_Time列设为VARCHAR(255)完成数据导入,保留原始的07:30A/01:35P格式数据。

2. 转换为24小时制时间

执行以下UPDATE语句,先补全单个字母的AM/PM标识,再用STR_TO_DATE解析为24小时制时间:

UPDATE my_table
SET Issue_Time = STR_TO_DATE(
    CONCAT(
        SUBSTRING(Issue_Time, 1, 5),
        CASE RIGHT(Issue_Time, 1)
            WHEN 'A' THEN 'AM'
            WHEN 'P' THEN 'PM'
        END
    ),
    '%h:%i%p'
);

3. (可选)规范列类型

转换完成后,将列类型改为TIME以统一存储格式:

ALTER TABLE my_table MODIFY COLUMN Issue_Time TIME;

验证结果

执行后数据会被正确转换:

  • 07:30A → 07:30:00
  • 01:35P → 13:35:00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:05:11