我正在尝试使用 LOAD DATA LOCAL INFILE 将数据从 csv 文件导入 MySQL。除以时间戳作为数据类型的日期列外,所有列均已正确导入。我收到错误 1265: data truncated for date columns 并为所有值插入 0000-00-00 00:00:00。之前已询问过此问题,但我没有找到完美的解决方案。我还尝试了针对此类问题发布的各种解决方案,但没有一个对我有用。
表创建语句:
CREATE TABLE MySchema.response
(
`id` int,
`version` int,
`name` varchar(500),
`date_created` timestamp,
`last_updated` timestamp,
`count` int,
);
将数据加载到表中:
LOAD DATA LOCAL INFILE 'C:/response.csv'
INTO TABLE MySchema.response
FIELDS TERMINATED BY ',' optionally ENCLOSED by '"'
ignore 1 lines
CSV 文件中的示例数据
id 版本名称 date_created last_updated 计数
1, 0, xyz, 5/3/2013 1:18, 5/3/2013 1:18, 2
2, 0, abc, 5/3/2013 1:18, 5/3/2013 1:18, 1
最佳答案
示例中的日期列不是 MySQL 的默认格式,因此不会被识别为日期。您需要尝试类似以下的操作,以便说明应如何解释日期:
LOAD DATA LOCAL INFILE 'C:/response.csv'
INTO TABLE MySchema.response
FIELDS TERMINATED BY ',' optionally ENCLOSED by '"'
IGNORE 1 lines
(id, version, name, @date_created, @last_updated, count)
SET date_created = STR_TO_DATE(@date_created, '%d/%c/%Y %k:%i'),
last_updated = STR_TO_DATE(@last_updated, '%d/%c/%Y %k:%i');
检查MySQL date format documentation适合您情况的说明符(可能是我在上面示例中添加的说明符)。
关于mysql - 日期列(数据类型 -timestamp)未从 csv 正确导入到 MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35820308/