2017-07-03 12 views
0

私はvarcharであるdob属性を持っています。日付の一部は、2011年6月6日の形式で、一部は2017-06-06の形式で格納されます。私は2011年6月6日の形式のものを2017-06-06に変換し、dobフィールドをDATEデータ型に設定するにはどうすればよいですか?varcharフィールドを日付に変換する方法

答えて

1

あなたはただ望んでいる場合は、このクエリ

UPDATE TABLE tbl_name set format_dob= STR_TO_DATE(yourdatefield, '%d/%m/%Y') 

を使用して、その列の値を永続的に続いadd_newコラム持つDATEデータ型D YYYY-MM-DDへ/ Mは、/ YYYY日付を変換し、更新したい場合計算列その後、単にあなたがこのように書くことができますクエリの

SELECT STR_TO_DATE(yourdatefield, '%m/%d/%Y') FROM tbl_name 
2

を使用します。

UPDATE table_name 
    SET column1=DATE(STR_TO_DATE(column1, '%Y-%m-%d')) 
    WHERE column1='"'.date('%d/%m/%Y',strtotime(column1)).'"' 

あなたはCONVERT関数を使用するかのように書くことができ、日付データ型にvarchar型を設定するには:

SET DATEFORMAT dmy 
+0

クエリエラーが発生しています。最初のクエリで – Steve

1

正しい日付形式に列を既存の最初の更新を(YYYY-MM-DD)

UPDATE tbl_name SET dob = STR_TO_DATE(dob,'%d/%m/%Y') 
WHERE STR_TO_DATE(dob,'%d/%m/%Y') IS NOT NULL; 

を使用してUpdateたらされます完了ALTERDATEデータ型

ALTER TABLE tbl_name MODIFY `dob` DATE NOT NULL DEFAULT '0000-00-00'; 
+0

がnull値を返しています。 – Steve

+0

申し訳ありませんが、現在の日付形式を詳しく見ていませんでした。 POSTを更新しました。これをチェックしてください。 – Samir

関連する問題