将CSV文件加载到表中时,日期值不正确

问题描述 投票:0回答:2

我正在尝试将数据填充到Employee表中,其中在Mysql中B_Date设置为DATE。但是出现此错误-

行导入失败,出现错误:(“错误的日期值:行1的'B_DATE'的日期值'05 / 06/1985',1292)]

因此,如何将特定表或列的格式更改为DD-MM-YYYY?

我已经尝试过-

SELECT DATE_FORMAT(B_DATE,'%d-%m-%y')来自雇员;

加载数据时仍然给出相同的错误。

mysql mysql-workbench
2个回答
0
投票

由于MySql在日期类型列中接受y-m-d格式的日期,因此您需要STR_TO_DATE函数将日期转换为yyyy-mm-dd格式,以便通过以下方式进行插入:

INSERT INTO table_name(today) 
VALUES(STR_TO_DATE('07-25-2012','%m-%d-%y')); 

Similary,如果要选择Mysql格式以外的其他格式的日期,则应尝试使用DATE_FORMAT功能

SELECT DATE_FORMAT(today, '%m-%d-%y') from table_name;

编辑:

用于更改列以接受ur格式的数据,

mysql_query("UPDATE `Table` SET `date` = STR_TO_DATE(`date`, '%d-%m-%Y')");
mysql_query("ALTER TABLE `Table` CHANGE COLUMN `date` `date` DATE");

0
投票

Mossad的最后建议解释了:

将表单字符串的日期从csv文件插入到mysql表中。您也可以在mysql工作台中运行以下命令。

step1:隐蔽表日期列类型为varchar()并导入文件。

step2:使用str_to_date函数更新date列的所有值。

更新Table设置date = STR_TO_DATE(date,'%d-%m-%Y')

step3:将日期列数据类型重置回DATE。

更改表Table更改列date date日期

© www.soinside.com 2019 - 2024. All rights reserved.