Mysql alter table add列后的datetime值不正确

Mysql alter table add列后的datetime值不正确,mysql,Mysql,我正在尝试将int字段添加到我的表中: ALTER TABLE `hisData` ADD COLUMN `hisID2` INT NULL DEFAULT NULL AFTER `hisID`; 但我得到一个mysql错误: SQL Error (1292): Incorrect datetime value: '1899-00-É5 É5:É5:É5' for column 'timeImported' at row 7264593 *** 我已经运行了一个修复(先快速,然后正常

我正在尝试将int字段添加到我的表中:

ALTER TABLE `hisData`
    ADD COLUMN `hisID2` INT NULL DEFAULT NULL AFTER `hisID`;
但我得到一个mysql错误:

SQL Error (1292): Incorrect datetime value: '1899-00-É5 É5:É5:É5' for column 'timeImported' at row 7264593
*** 我已经运行了一个修复(先快速,然后正常,然后扩展),但它似乎并没有解决这个问题

很明显,一行一行的解决这个问题是不现实的。关于如何修复损坏的线路有什么想法吗

松开损坏的线路不会有什么大不了的。

解决了这个问题

ALTER TABLE `hisData` MODIFY `timeImported` varchar(20);
然后

这让我不再约会了


可能会在更改之前找到最小和最大日期,然后选择比切换到varchar后的日期更小或更大的日期来查找大多数问题(但不一定全部)但我并不担心此表中的数据丢失。

您的timeImported列中的datetime值不正确,该列以1899-00-开头。您有一些选择:

  • 修复它,搜索00个月00天0000年并将其更改为有效的日期时间
  • 更新表_x SET timeImported='1899-01-01 00:00:00',其中 timeImported类似于“0000%”或timeImported类似于“%-00%”

  • 设置SQL_模式='ALLOW_INVALID_DATES'则将忽略错误
  • ALTER IGNORE TABLE `hisData` MODIFY `timeImported` datetime;