Déjalo en función más simple s. DATE()
devuelve la parte de la fecha de una cadena en formato AAAA-MM-DD:
SELECT DATE(birthday) FROM `test`
Resultado:
2004-12-25
2004-12-25
1994-12-25
1994-12-01
La razón por la que su código no funciona es que STR_TO_DATE()
espera los mismos formatos de entrada y salida, p. STR_TO_DATE('2014-08-29', '%Y-%m-%d')
. Eche un vistazo a ejemplos en la documentación
. Esta función se usa principalmente para convertir fechas u horas de un formato a otro, donde el formato original es algo externo a MySQL y desea importar los datos al formato de fecha de MySQL, por ejemplo; en este caso, sabrá cuál es el formato original. el formato de fecha es.
Ejemplo:
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