より単純な関数 s。 DATE()
文字列の日付部分をYYYY-MM-DD形式で返します:
SELECT DATE(birthday) FROM `test`
結果:
2004-12-25
2004-12-25
1994-12-25
1994-12-01
コードが機能しない理由は、STR_TO_DATE()
同じ入力形式と出力形式を想定しています。 STR_TO_DATE('2014-08-29', '%Y-%m-%d')
。 ドキュメントの例
。この関数は主に、日付または時刻をある形式から別の形式に変換するために使用されます。元の形式はMySQLの外部のものであり、たとえばデータをMySQLの日付形式にインポートする必要があります。この場合、元の形式がわかります。日付形式はです。
例:
SELECT STR_TO_DATE('20041225', '%Y-%m-$d'); -- null - formats don't match
SELECT STR_TO_DATE('2004-12-25', '%Y-%m-%d'); -- 2004-12-25 - formats match