Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
日期列(数据类型-时间戳)未正确从csv导入MySql_Mysql_Csv - Fatal编程技术网

日期列(数据类型-时间戳)未正确从csv导入MySql

日期列(数据类型-时间戳)未正确从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

我正在尝试使用LOAD data LOCAL INFIE将csv文件中的数据导入MySQL。所有列(日期列除外,日期列的数据类型为时间戳)都已正确导入。我得到了错误1265:数据截断日期列,它插入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
将数据加载到表中:

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。非常好的解决方案,感谢您提供有关日期格式的文档