privatefta: Deberías razonarlo de este modo: Si se diseñaron tipos de dato DATE, DATETIME y TIME específicamente para manejar valores de tiempo,
y todas las bases de datos del mundo, incluyendo las bancarias los usan forzosamente debe ser
el mejor modo de guardar esos datos. Sino fuese así, todos usarían VARCHAR. ¿No te parece?
Hay razones
fundamentales por las que se almacenan así y no como lo has hecho tu (mal) al cambiar un dato perfectamente defindo como DATE por un parche mal pensado en VARCHAR.
Las fechas no se almacenan como caracteres, como tampoco se hace con los números. Se almacenan en sus tipos porque en realidad no se guardan las cifras sino su representación
en binario. Por eso
un DATETIME usa sólo 8 bytes mientras que la misma fecha,
en caracteres necesitará 19 bytes.
Por lo demás,
pateketrueke ya te lo ha dicho: Es mucho más sencillo obtener la fecha en su formato ddmm/aaaa simplemente en la consulta (con DATE_FORMAT()), que resolver los problemas que ahora te causará hacer consultas por fechas en tu base, ya que debes considerar que las consultas que hagas no interpretaran lo que guardas como
fechas, sino como
cadenas de texto, y cuando quieras ordenar, agrupar o seleccionar por rangos, deberás hacer conversiones que solamente te complicarán la vida, y si están mal hechas serán NULL.
O sea: No hagas eso. Pon las columnas como estaban antes y usa las funciones necesarias al momentos de los INSERT para que la fecha entre como "aaaa-mm-dd". Las consultas serán más sencillas.