2016-10-25 14 views
0

私はデータベース世界でちょっと新しく、DATETIME、TIMESTAMP、または日付関連のデータベースのすべての列が私の仕事に突っ込んできましたが、VARCHAR(250)Exです。 :201610251557.VARCHAR to DATE - MySQL

私の質問は、そこに値を失うと、今までの列を変更する方法がありますか?

すでに列構造を変更しようとしましたが、すべての値が0000-00-00 00-00に変更されています。

+0

変換する前にすべてのフィールドを修正してください。 – aynber

答えて

1

安全なシナリオは次のとおり

  1. が正しいタイプで
  2. 更新データを新しいフィールドを追加する新しいフィールドが
  3. (オプション)は、すべての行に対して適切なデータが読み込まれるまで削除(またはアーカイブのためにリネーム目的)古いフィールド
  4. (オプション)元のフィールドの名前
+0

私はurソリューションを使用しました。WEBjuju、haha、ありがとうございました:) –

3

に新しいフィールドの名前を変更するあなたはSTRを見てすることができます_現在まで;そのISO形式の出力で

SELECT STR_TO_DATE('201610251557', '%Y%m%d%H%i'); 

、おそらくあなたは、このようなあなたの列を更新することができます:それはこのように動作

update my_table set datecol = STR_TO_DATE(datecol, '%Y%m%d%H%i'); 
+1

thx @baao - あなたは正しいフォーマットのパラメータを持っているか、爆弾を持っています – WEBjuju

+0

私はUUソリューションを使用しましたUUeerdo、haha、thanks guys: ) –

1

あなたはstr_to_date()関数で別のテーブルを作成することができ、新しい以前の名前変更を削除します1つ前または元に戻す