STR_TO_DATE関数を使用して、日付をmm/dd/yyyy形式を標準日付形式yyyy-mm-ddに変換しようとしています。私の日付のカラムのいくつかのフィールドはnullで、いくつかは日付を含んでいます。MySQL STR_TO_DATEがnullを返す
たとえば、2011年8月22日は2011年8月22日になる必要があります。
私は私の日付列を選択すると、それは次のようになります。私は、コード
UPDATE table SET date = STR_TO_DATE(date, '%m/%d/%Y')
を使用してみました 2011年8月22日 2010年8月10日 2012年5月12日 など
列をNULL値で埋めました。また試しました
UPDATE table SET date = STR_TO_DATE(@date, '%m/%d/%Y')
同じ結果が出ましたが、今回は警告メッセージが表示されませんでしたが、
ではありませんそれらの価値が含まれています。あなたは、2回目に警告を出さないと言った( '@ date'は変数としてnullです)...初めて警告を出しましたか? –
これを貴重な変更にするには、列の定義をdatetimeに変更する必要があります。そうしないと、DATETIME値をVARCHAR列に挿入しようとしています。 (これは動作しますが、それでも文字列として扱われ、日付関数では使用できません) –
こんにちはMichael、ここでは私が投稿していない別の試みとして、実際にDATE値を持つ新しい列を作成しようとしました。そこに私の値を挿入してください、しかし、私はまだすべての値のNULLを持っています。私が受け取った警告は次のようになっています:1411 datetime値が正しくありません:str_to_date関数のための 'NULL' – hayfreed