0

CakePHP と MySQL で実行されていた従来のデータベースを、構造が大きく異なる Postgres データベース上の新しい Rails アプリに移行しています。移行の小さな部分が 1 つあり、それが私にぴったりです。ここの誰かが私を正しい方向に向けてくれることを願っています。

基本的に、不正な日付を含む (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 に答える