Overlad det til enklere funktion s. DATE()
returnerer datodelen af en streng i formatet ÅÅÅÅ-MM-DD:
SELECT DATE(birthday) FROM `test`
Resultat:
2004-12-25
2004-12-25
1994-12-25
1994-12-01
Grunden til, at din kode ikke virker, er STR_TO_DATE()
forventer de samme input- og outputformater, f.eks. STR_TO_DATE('2014-08-29', '%Y-%m-%d')
. Tag et kig på eksempler i dokumentationen
. Denne funktion bruges mest til at konvertere datoer eller klokkeslæt fra et format til et andet, hvor det originale format er noget uden for MySQL, og du vil importere dataene til f.eks. MySQL's datoformat - i dette tilfælde vil du vide, hvad der er originalt datoformatet er.
Eksempel:
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