Laissez-le à fonction plus simple s. DATE()
renvoie la partie date d'une chaîne au format AAAA-MM-JJ :
SELECT DATE(birthday) FROM `test`
Résultat :
2004-12-25
2004-12-25
1994-12-25
1994-12-01
La raison pour laquelle votre code ne fonctionne pas est que STR_TO_DATE()
attend les mêmes formats d'entrée et de sortie, par ex. STR_TO_DATE('2014-08-29', '%Y-%m-%d')
. Jetez un œil au exemples dans la documentation
. Cette fonction est principalement utilisée pour convertir des dates ou des heures d'un format à un autre, où le format d'origine est quelque chose de l'extérieur de MySQL et vous voulez importer les données dans le format de date de MySQL par exemple - dans ce cas, vous saurez ce que l'original le format de date est.
Exemple :
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