MySQL Table Data Import Wizard改datetime类型后导入0条记录问题
问题原因
MySQL的datetime类型仅支持YYYY-MM-DD(或带时间的YYYY-MM-DD HH:MM:SS)标准格式,你CSV里的日期是1/1/2020这类月/日/年的非标准格式,MySQL无法自动将其识别为datetime类型,导致所有记录因数据校验失败被丢弃,最终导入0条。
解决办法
方法1:导入时指定日期解析格式
在MySQL Workbench的Table Data Import Wizard走到列映射步骤时:
- 找到
order_date列,将数据类型改为datetime - 点开该列的高级选项,在「输入格式」栏填写
%m/%d/%Y(对应你的月/日/年格式) - 继续完成导入流程,MySQL会按指定格式解析日期,即可成功导入所有记录
方法2:先修改CSV的日期格式
用Excel打开CSV文件,调整order_date列格式:
- 选中
order_date整列,右键选择「设置单元格格式」 - 切换到「自定义」标签,在类型框输入
yyyy-mm-dd,点击确定 - 将文件另存为CSV格式(注意选择正确的CSV类型,避免格式丢失)
- 再用MySQL Workbench导入,直接将
order_date设为datetime即可
方法3:先导入为字符串类型再转换
- 先将
order_date设为VARCHAR类型完成导入 - 执行以下SQL语句(替换
你的表名为实际表名):
ALTER TABLE 你的表名 MODIFY COLUMN order_date datetime; UPDATE 你的表名 SET order_date = STR_TO_DATE(order_date, '%m/%d/%Y');
内容的提问来源于stack exchange,提问作者prernaroy
相关产品推荐
相关产品推荐

