Ver Mensaje Individual
  #11 (permalink)  
Antiguo 18/05/2008, 00:58
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Contar y agrupar datos de una tabla

Tienes dos opciones (según tu atrevimiento a la hora de realizar los cambios), pero lo primero es comprobar el modo en que has metido los datos. Si has usado siempre dos dígitos para día y mes y cuatro para el año, y tienes el orden dd-mm-aaaa, es decir, día, mes y año separados por / o -, podrás hacer dos cosas (por ej. dos de enero de 2004, 02-01-2004). Además, el campo donde está guardado el dato en MySQL, por lo que me dices, es VARCHAR.
Primer método: crear un nuevo campo en MysQL tipo DATE y al que yo he llamado fechanueva; al campo donde tienes la fecha ahora y es VARCHAR lo he llamado fechamal.
UPDATE tutabla SET fechanueva = CONCAT(SUBSTR(fechamal,7,4), '-', SUBSTR(fechamal, 4,2), '-', SUBSTR(fechamal, 1,2))

Luego revisas que las fechas en fechanueva aparecen bien y posteriormente eliminas el campo fechamal y después cambias el nombre del campo fechanueva a fechamal (no sé como lo llamabas tú).

El segundo método es más directo, pero debes vigilar que los datos están metidos como me has dicho. En realidad haces el cambio sobre el mismo campo fechamal y luego cambias su tipo a DATE.

UPDATE tutabla set fechamal = REPLACE (fechamal,fechamal, CONCAT(SUBSTR(fechamal,7,4), '-', SUBSTR(fechamal, 4,2), '-', SUBSTR(fechamal, 1,2)))

compruebas que los cambios se han producido y después cambias el tipo del campo de VARCHAR a DATE

De todas formas, para tu tranquilidad hazlo primero sobre un solo registro (por eje. el que tenga id = 3, añadiendo WHERE id = 3 en las consultas]) o sobre una copia de la tabla o de la base. Cuando veas que funciona bien, hazlo en la base empleando el método que más te guste y quitando ese where id = 3 para que afecte a todos los registros.

Última edición por jurena; 18/05/2008 a las 01:03