0

我有一个在 CakePHP 和 MySQL 上运行的遗留数据库,它正在迁移到 Postgres 数据库上的新 Rails 应用程序,其结构完全不同。我有一小段迁移让我很适应,我希望这里有人能指出我正确的方向。

本质上,有些日期列(MySQL 类型的 Date)包含格式错误的日期。大多数格式错误的日期都是格式'2012-08-00',并且 MySQL2 适配器会阻塞这些日期(显然 00 不是一个月中的有效日期)。如果我可以将它们放入模型中,我可以进行必要的转换,将它们变成更完整的新格式。即使将它们作为字符串从数据库中取出就足够了,我可以通过这种方式进行必要的操作。

我收到以下错误:

Mysql2::Error: Invalid date: 2011-12-00

每当我尝试从系统中选择一个无效日期时。表中有 3800 行,我估计大约有一半的人试图手动完成并修改它们会花费大量时间(但并非过度,如果需要这样做的话)。

任何建议将不胜感激!

4

1 回答 1

1

像这样的东西应该可以工作(未经测试):

update [table] set [field] = DATE_ADD([field],INTERVAL 1 day) where day([field]) = '0'
于 2012-08-01T21:32:24.637 回答