2011-08-14 12 views
0

datetimeフィールドを挿入するアプリケーションがあります。それは秒で挿入され、それはするつもりはなかったが、問題があった!datetimeフィールドを正規化するMySQLクエリ

I.e. 2011年8月7日午後3時24分〇六秒

彼らはこれを修正しており、上記の例では、

2011年8月7日15時24分00秒

のようになりますので、挿入は今だけ分まで含めます

現在、2千万の行が「間違っています」。古いものを修正する最も効率的なクエリは何ですか?

答えて

2
UPDATE 
    table 
SET 
    timefield = DATE_FORMAT(timefield,'%Y-%m-%d %H:%i:00') 
WHERE 
    SECOND(timefield) <> 0; 

これは(これは避けられない)テーブルの各行を読み取り、時間のseconds一部を抽出しなければならないが、それは既に正しい行を更新する必要はありません。

+0

しかし、私は以下を使用する必要はありません:00:%s ?? –

+0

リー、もちろん、私はこれを修正しました。 –

-1

「間違った」ものに基づいてアップデートをフィルタリングし、最後の3文字の右トリムを実行します。

+0

ただし、トリムでこれらの文字が削除されますか?私はそれが変更されたときに知っているように簡単にフィルタリングできますが、更新ステートメントの例がありますか? –

+0

エミールの答えはあなたのために良いwrkになります。 – diagonalbatman

関連する問題