Laat het over aan eenvoudigere functie s. DATE()
geeft het datumgedeelte van een tekenreeks terug in de indeling JJJJ-MM-DD:
SELECT DATE(birthday) FROM `test`
Resultaat:
2004-12-25
2004-12-25
1994-12-25
1994-12-01
De reden dat uw code niet werkt, is dat STR_TO_DATE()
verwacht dezelfde invoer- en uitvoerformaten, b.v. STR_TO_DATE('2014-08-29', '%Y-%m-%d')
. Bekijk de voorbeelden in de documentatie
. Deze functie wordt meestal gebruikt om datums of tijden van het ene formaat naar het andere te converteren, waarbij het oorspronkelijke formaat iets van buiten MySQL is en u de gegevens bijvoorbeeld in het datumformaat van MySQL wilt importeren - in dit geval weet u wat het origineel datumnotatie is.
Voorbeeld:
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