Nechte to na jednodušší funkci s. DATE()
vrátí datovou část řetězce ve formátu RRRR-MM-DD:
SELECT DATE(birthday) FROM `test`
Výsledek:
2004-12-25
2004-12-25
1994-12-25
1994-12-01
Důvod, proč váš kód nefunguje, je STR_TO_DATE()
očekává stejné vstupní a výstupní formáty, např. STR_TO_DATE('2014-08-29', '%Y-%m-%d')
. Podívejte se na příklady v dokumentaci
. Tato funkce se používá většinou pro převod dat nebo časů z jednoho formátu do druhého, kde původní formát je něco z jiného než MySQL a chcete data importovat například do formátu data MySQL - v tomto případě budete vědět, jaký je původní formát formát data je.
Příklad:
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