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

时间:2019-02-06 06:57:11

标签: mysql mysql-workbench

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

  
    

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

  

那么如何针对特定表或列将格式更改为DD-MM-YYYY?

我已经尝试过-

  

从员工那里选择DATE_FORMAT(B_DATE,'%d-%m-%y');

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

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分:0)

最后由Mossad提出的建议在这里作了解释:

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

步骤1 :将隐蔽表日期列类型转换为varchar()并导入文件。

步骤2 :使用str_to_date函数更新日期列的所有值。

  

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

第3步:将日期列数据类型重置为DATE。

  

更改表Table更改列date date日期