MySQL - 在文件中加载数据返回日期字段的错误

时间:2017-01-19 03:35:10

标签: mysql sql csv

我正在尝试使用以下命令将.CSV文件中的数据加载到MySQL数据库中。

LOAD DATA LOCAL INFILE "FILEPATH/EQUIPMENT.CSV" 
INTO TABLE EQUIPMENT
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\R\N'
IGNORE 1 LINES;

但是,在尝试将信息加载到数据库时,MySQL会返回以下错误:

Error Code: 1292. Incorrect date value: '0000-00-00' for column 'END_OF_LIFE' at row 1

这个错误没有任何意义。作为价值' 0000-00-00'没有在第一行中为数据集指定。请参阅下面的示例数据集。

+---------------+-------------+
| EQUIPMENT_ID  | END_OF_LIFE |
+---------------+-------------+
| B1010-V003    | 1800-01-01  |
| B1010-V001    | 1800-01-01  |
| B1010-V005    | 1800-01-01  |
+---------------+-------------+

任何人都知道为什么系统可能会返回此错误? (我已经尝试将日期更改为更合理的值,但这也不起作用。)

2 个答案:

答案 0 :(得分:0)

试试这个:

/usr/bin/mysql --local-infile=1 -u$DB_user -p$DB_pw --database=$DB_database < $working_dir/load_ic2_loc_batch.sh 2>> $logfile

答案 1 :(得分:0)

我实际上发现了什么是错的。这是因为我的脚本中的行结尾被错误地指定为大写字母(我猜输入CSV文件中的MS DOS行结尾区分大小写)。请参阅下面的更正脚本。

LOAD DATA LOCAL INFILE "FILEPATH/EQUIPMENT.CSV" 
INTO TABLE EQUIPMENT
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;