Bueno, volvamos al punto.
Supongamos que campo en cuestión se llama
fecha, y lo has definido como TEXT. Una calamidad, como ya dije, porque una fecha se almacena en realidad en un DATE o DATETIME, que a nivel de programación del kernel se implementa como un DOUBLE y se graban como números binarios. Esto no es importante para tí, pero te da una idea que no es lo mismo grabar una fecha con 8 bytes en lugar de usar 11 ó 12...
¿no te parece?
Por otro lado, un TEXT requiere más memoria y recursos para su gestión que un VARCHAR o un CHAR; por eso no es conveniente usarlos a menos que específicamente estés manipulando grandes cantidades de texto. Entre otras cosas, requiere que cuando se usen para crear índices, se definan la longitud del bloque a indexar, las comparaciones de una columna TEXT contra un valor implica el uso de algoritmos diferentes a los de comparación de cadenas (esto es interno) que son bastante más complejos, y un largo etcétera.
Usar, por otro lado, TEXT para almacenar datos numéricos, como puedes estar haciendo, también es un error, porque ocupan demasiado espacio, al ser almacenados como cifras.
En los sistemas de bases de datos los números, sin importar cuáles son, se almacenan como valores binarios, enteros o de punto flotante, lo que hace que ocupen mucho menos espacio. Así, por ejemplo, un valor como 18.446.744.073.709.551.615 no ocupa 26 bytes, sino 8...
Yendo al método de resolver el error cometido, la idea es primero crear un campo para la fecha:
Luego, realizamos el traspaso de los datos, lo que suponiendo que se guardaron con los meses en inglés, sería:
Luego pruebas que la conversión se haya realizado bien y eliminas la columna que estaba:
Para finalmente cambiarle el nombre a la nueva:
Eso sería mas o menos la idea.
Consejo: Haz una copia de la tabla que vas a cambiar y realiza pruebas antes de realizarlo con la tabla de trabajo.