0

日付を
varchar(256) latin1_swedish_ci として保存しました

次のように表示されます: 11/22/2012

今、既存のデータと列をDATEに変換したかった

SQLでこれを行う最も簡単な方法は何ですか

ありがとう

4

3 に答える 3

6

安全のために、私は個人的に新しい列を追加し、データを転送してから削除します

update `table` set `new_col` = str_to_date( `old_col`, '%m/%d/%Y' ) ;

列を削除する前に、データに問題がないことを確認してください。

于 2013-07-19T23:35:14.330 に答える
1

既存のデータを使用して変換するために編集します。

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;
于 2013-07-19T23:29:40.197 に答える
0

機能を使用してくださいSTR_TO_DATE

正しいデータ型の新しい列を作成し、STR_TO_DATE関数を使用して古い列から新しい列に文字列を移動してから、古い列を削除します。

UPDATE table SET new_col = STR_TO_DATE(old_col);

MySQL STR_TO_DATE リファレンス.

于 2013-07-19T23:35:57.083 に答える