日付を
varchar(256) latin1_swedish_ci として保存しました
次のように表示されます: 11/22/2012
今、既存のデータと列をDATEに変換したかった
SQLでこれを行う最も簡単な方法は何ですか
ありがとう
安全のために、私は個人的に新しい列を追加し、データを転送してから削除します
update `table` set `new_col` = str_to_date( `old_col`, '%m/%d/%Y' ) ;
列を削除する前に、データに問題がないことを確認してください。
既存のデータを使用して変換するために編集します。
STR_TO_DATE(t.datestring, '%d/%m/%Y')
ソース:文字列を日付に変換
変換用のデータを保持するために、一時テーブルを作成する必要がある場合があります。
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
次に、テーブルを切り捨てることができます。
TRUNCATE [TABLE] tbl_name
次に、列のデータ型を変更できます。
ALTER TABLE tablename MODIFY columnname DATE;
次に、一時テーブルからリロードできます。
INSERT INTO table
SELECT temptable.column1, temptable.column2 ... temptable.columnN
FROM temptable;
機能を使用してくださいSTR_TO_DATE
。
正しいデータ型の新しい列を作成し、STR_TO_DATE
関数を使用して古い列から新しい列に文字列を移動してから、古い列を削除します。
UPDATE table SET new_col = STR_TO_DATE(old_col);