2016-07-27 11 views
0

私はSTR_TO_DATE(str、fmt)の使用方法を知っています。特定の文字列の書式が変更されますが、テキスト形式で異なる日付の列がある場合(例:2010年1月11日、2015年1月25日、2015年6月27日...)列のすべてのデータをDATE形式に変換しますか?私が読んでいるすべてのものから、毎回変換される正確な値を提供する必要があるようです。カラムのすべての値をMySQLのVARCHARからDATEに変換

+1

をそう? 'str_to_date(あなたのフィールド、 '%d /%m /%Y')'、完了。レコードのフィールドを更新クエリの一部として使用することができます(例: 'update foo set bar = bar + 1'は完全に正当な/有効です。 –

+0

あなたは正しいです - 私はテストで "NULL"を取得していましたが、うまくいきます: 'update pp_drops_dev set Create_Date = str_to_date(Create_Date、 '%d /%m /%Y')' –

答えて

0

ifnullを複数使用することができます。

select ifnull(STR_TO_DATE(a,'%Y-%m-%d'),sTR_TO_DATE(a,'%Y-%d-%m')) from [YourTable]; 

update [YourTable] set timestamp=ifnull(STR_TO_DATE([Colum],'%Y-%m-%d'),sTR_TO_DATE(a,'%Y-%d-%m')) ; 

これが役に立ちます。行わ

0

おかげマークB.

str_to_date(yourfield、 '%のM /%Y%のD /')。レコードのフィールドを更新クエリの一部として使用することができます(例: update foo set bar = bar + 1は完全に正当な/有効です。

だから私は使用:

update [My_Table] 
set Create_Date = str_to_date(Create_Date, '%d/%m/%Y') 
関連する問題