MySQL CSV 导入的年份日期为 0018 无效日期

Posted

技术标签:

【中文标题】MySQL CSV 导入的年份日期为 0018 无效日期【英文标题】:MySQL CSV Imported Year Dates as 0018 Invalid Date 【发布时间】:2018-09-07 00:40:41 【问题描述】:

尝试更正导入日期的年份部分时出错。

CSV 日期列值已格式化

07/21/18 而不是 2018 年 7 月 21 日

这导致 mysql 插入日期为 07/21/0018

我的印象是,如文档中所述,00-69 范围内的年份值已转换为 2000-2069。

有什么办法可以解决这个问题吗?我已经尝试了很多没有运气的陈述......

任何帮助表示赞赏

【问题讨论】:

【参考方案1】:

假设您只想就地更新数据,并且它是 Date、DateTime 或 Timestamp 类型的列,您可以这样做:

UPDATE table SET date = date + INTERVAL 2000 YEAR WHERE YEAR(date) < 70

【讨论】:

工作就像一个魅力。太感谢了!现在我只需要弄清楚为什么导入 17k 条记录需要 20 个小时 :( 20 小时!哎呀!这看起来确实很慢......无论如何,很高兴我能提供帮助。

以上是关于MySQL CSV 导入的年份日期为 0018 无效日期的主要内容,如果未能解决你的问题,请参考以下文章

CSV 日期格式转 MySQL 日期格式

从 MySQL 导入到 Excel 的 CSV 在日期结束时留下“/”

PHP/MySQL:导入 CSV,所有日期和十进制值都为空,零

MySQL 不会 CSV 导入 \N 作为 NULL

将列字符串转换/解析为日期时间值 - 熊猫

navicat导入外部数据到mysql中文乱码以及日期格式问题