0

異常な日時形式を含む varchar 列を含む大量のデータ セットがあります。

6000 行以上のデータを変換してから、列の型を変換するにはどうすればよいですか?

これで型を変換できることがわかります:

ALTER TABLE <tblName> MODIFY <columnName> date time;

しかし、データを保持し、すべての行に対して同時にこれを行う方法がわかりません。

私が現在持っている日付の例は次のとおりです。

Mon, 23 Sep 2013 07:01:00 GMT

@Mihaiに従って回答

UPDATE rns
SET rns.`rns_pub_date` = STR_TO_DATE(rns_pub_date,"%a, %d %b %Y")
4

2 に答える 2

4

一度にすべてを行うわけではありません。これらの手順を 1 つずつ実行します。

  1. 新しい列を追加します。
  2. 古い列から新しい列を更新します。varchar 列にあるフォーマットの数によっては、複数のクエリが必要になる場合があります。
  3. 古い列をドロップします。
  4. 新しい列の名前を変更します。
于 2013-11-09T13:18:15.827 に答える
1
UPDATE `table`
SET `column` = STR_TO_DATE(`column`,'%Y-%m-%d')

必要に応じてフォーマットを調整します。

于 2013-11-09T11:27:26.823 に答える