日期列(数据类型-时间戳)未正确从csv导入MySql
我正在尝试使用LOAD data LOCAL INFIE将csv文件中的数据导入MySQL。所有列(日期列除外,日期列的数据类型为时间戳)都已正确导入。我得到了错误1265:数据截断日期列,它插入0000-00-00 00:00:00为所有值。这已经被问过,但我没有找到一个完美的解决方案。我也尝试过针对这类问题发布的各种解决方案,但没有一种对我有效 表格创建语句:日期列(数据类型-时间戳)未正确从csv导入MySql,mysql,csv,Mysql,Csv,我正在尝试使用LOAD data LOCAL INFIE将csv文件中的数据导入MySQL。所有列(日期列除外,日期列的数据类型为时间戳)都已正确导入。我得到了错误1265:数据截断日期列,它插入0000-00-00 00:00:00为所有值。这已经被问过,但我没有找到一个完美的解决方案。我也尝试过针对这类问题发布的各种解决方案,但没有一种对我有效 表格创建语句: CREATE TABLE MySchema.response ( `id` int, `version` int, `name` v
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
将数据加载到表中:
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版本名称\u创建日期\u上次更新计数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,寻找适合您情况的说明符(可能是我在上面的示例中添加的说明符)。我唯一需要做的更改是更改月份和日期的位置。在我的csv文件中,格式为mm dd YYYY。非常好的解决方案,感谢您提供有关日期格式的文档