![]() |
Convertir fecha (formato varchar) a (formato date) Un saludo para todos. Metí la pata cuando diseñé una tabla. Tenía un campo de fecha y, por no complicarme la vida (ahora si que me la he complicado) la definí com varchar(10) y sus valores están almacenados como dd/mm/aaaa. Ahora tengo la necesidad de hacer comparaciones con la fecha y hubiera necesitado que el formato de dicha fecha fuera "date" y con el valor que mysql tiene por defecto que es YYYY-mm-dd. Mi pregunta es la siguiente: ¿Podría, con un update, modificar el formato y el valor de dicho campo de fecha de todas las filas de mi tabla?¿O con un insert... select (sobre una nueva tabla)? Muy agradecido.:-) |
Supongo que esto tendría una solución con sólo comandos sql, pero como no se me ocurre como, lo he solucionado con un script php (quizás el moderador deba mover este hilo al foro de php). Mi tabla era: Código PHP: Luego le he pasado el siguiente script php: Código PHP: Lo último que queda, es borrar el antiguo campo de "fecha" y renombrar el "fecha1" a fecha. Un saludo. |
Así es .. con una sóla sentencia SQl lo podrías resolver. En SQL tienes funciones para manejar Strings (cadenas) al igual que en PHP o cualquier otro lenguaje de programación, hasta tienes posibilidad de usar expresiones regulares incluso. Se trata de usarlas en el "UPDATE", sin "condicional" (para que aplique a toda la tabla) y sin cambiar el tipo de dato de tu campo "fecha" actual (un varchar()) hasta que termines el proceso. Es decir .. aplicas un UPDATE tipo: Código PHP: más info: http://dev.mysql.com/doc/refman/5.0/...functions.html Y luego cambias el tipo de campo a un "DATE". Un saludo, |
Buenos días, Cluster: gracias. No creas que había olvidado el agradecer tu correcta respuesta. Ayer y hoy ha habido problemas en el foro y no había forma de acceder; ahora mismo me he dado cuenta que ya se podía acceder. Aunque conozco desde hace muchos años el lenguaje SQL, en las empresas en las que he trabajado no nos permitían utilizar sus funciones como la que me has indicado (chapó). Por si le sirve a alguien, para su comprobación, aquí dejo un código de ejemplo con tu solución, aplicando SUBSTRING: Código PHP: |
| La zona horaria es GMT -6. Ahora son las 08:21. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.