Respuesta: De VARCHAR a TIME_STAMP sin perder datos Claro que se puede:
Imagino que las fechas las incluyes así: 3/2/08 para tres de febrero de 2008, y 4/12/97 para cuatro de diciembre de 1997.
Usaré la función substring_index, pero la misma sólo funciona con versiones recientes de MySQL. No sé cuál usas tú.
Imaginemos que el campo donde tienes la fecha metida como texto se llama fechatexto, y que tu tabla se llama tabla.
Primer paso
Crear un campo tipo timestamp al que llamarás fechatimestamp
Segundo paso:
Haces esta consulta de selección para ver si las fechas salen bien. Controla que todas las fechas tengan las dos barras de separación y los números bien.
SELECT fechatexto, CAST(CONCAT(IF(substring_index(fechatexto,'/',-1) > 9, CONCAT('19', substring_index(fechatexto,'/',-1) ), CONCAT('20', substring_index(fechatexto,'/',-1))),'-',substring_index(substring_index(fechatexto,'/',2),'/',-1),'-',substring_index(fechatexto,'/',1)) AS DATE) FROM tabla
Tercer paso
Si todo ha ido bien, lanzas la siguiente consulta de actualización:
UPDATE tabla SET fechatimestamp = CAST(CONCAT(IF(substring_index(fechatexto,'/',-1) > 9, CONCAT('19', substring_index(fechatexto,'/',-1) ), CONCAT('20', substring_index(fechatexto,'/',-1))),'-',substring_index(substring_index(fechatexto,'/',2),'/',-1),'-',substring_index(fechatexto,'/',1)) AS DATE)
Luego, tras comprobar que todo está bien, puedes eliminar el campo fechatexto.
Y ya tendrás lo que quieres.
Última edición por jurena; 06/09/2008 a las 07:58 |