Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
由于字符串-日期类型冲突,无法将数据从一个表复制到MySQL中的新表_Mysql - Fatal编程技术网

由于字符串-日期类型冲突,无法将数据从一个表复制到MySQL中的新表

由于字符串-日期类型冲突,无法将数据从一个表复制到MySQL中的新表,mysql,Mysql,我在表1中有一个日期列,其中填充了字符数据,如下所示: InDate: 2022015 2012015 2122014 2112014 2102014 2092014 我已将该数据转换为以下格式: InDate: 02-02-2015 02-01-2015 02-12-2014 02-11-2014 02-10-2014 02-09-2014 通过使用以下命令: update table1 set InDate = DATE_FORMAT(str_to_date(InDate, '%d-%m

我在
表1
中有一个日期列,其中填充了字符数据,如下所示:

InDate:
2022015
2012015
2122014
2112014
2102014
2092014
我已将该数据转换为以下格式:

InDate:
02-02-2015
02-01-2015
02-12-2014
02-11-2014
02-10-2014
02-09-2014
通过使用以下命令:

update table1
set InDate = DATE_FORMAT(str_to_date(InDate, '%d-%m-%Y'), '%d-%m-%Y');
但显然,这只改变了
InDate
列中字符串数据的外观。现在,这仍然不能满足我的情况,我需要列本身是
Date
类型

因此,我创建了一个名为
table2
的新空表,其结构与
table1
相同(除了
InDate
列,我现在将其声明为
Date
类型),并尝试复制旧数据(该数据具有我所需格式的
InDate

但我收到以下错误消息:

Error Code: 1292. Incorrect date value: '02-02-2015' for column 'InDate' at row 1
我需要此列是数据完整的日期类型。这个表有数百万条记录需要处理。我真的需要避开这个错误

请帮忙

请试试这个

 INSERT INTO table2(`InDate`)
SELECT CONCAT('\'',InDate,'\'')
FROM table1;

希望这有帮助。

此代码块可能有助于使用:

不更新表1

插入到表2中
(因达特)
选择日期格式(str到日期(indate
,“%d-%m-%Y”)
,“%d-%m-%Y”)

来自表1

对不起。这也没用。我在其他地方找到了一种方法,建议使用YYYY-MM-DD格式,而不是我使用的格式。这就解决了问题。谢谢
 INSERT INTO table2(`InDate`)
SELECT CONCAT('\'',InDate,'\'')
FROM table1;