2016-08-24 6 views
0

データがm/d/yyのvarchar(9)列があります。私はそれをyyyy-mm-ddに変換したい。varchar m/d/yyをyyyy-mm-ddに変更します。

SELECT STR_TO_DATE(date_new,'%m/%d/%Y') as date 
    FROM july 

私の問題は、その列のすべての値を更新する方法です。私はこのクエリを使用してみました、すべての日付を台無しにする。

UPDATE july 
    SET date_new = str_to_date(date_new, '%d-%m-%Y'); 

喜んで歓迎されるでしょう!

ありがとうございます。 :)

+1

また、あなたの列の型を 'date'か同等のものに変更することもお勧めします。 'varchar'フィールドに日付を格納する正当な理由はありません。 – siride

+0

私はそれをvarcharフィールドに格納する予定はありません。私はすべての値がvarcharに格納されているファイルを受け取りました。私はそれらを変換する必要があります。 –

答えて

2

あなたは近くでした。 DATE_FORMAT()を使用して、目的の文字列表現に変換することができます。

UPDATE july 
    SET date_new = DATE_FORMAT(STR_TO_DATE(date_new,'%m/%d/%Y'), '%Y-%m-%d'); 

注:あなたが再フォーマットされた値に合うようにvarchar(10)varchar(9)からあなたのコラムを変更する必要があると思います。

ALTER TABLE july MODIFY date_new VARCHAR(10); 

ここにはSQLFiddleがあります。

+0

ありがとうございます!これはトリックでした。 :) –

+0

素晴らしい!私はあなたのために働いてうれしいです。 – peterm

関連する問題