Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/02/2011, 12:43
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consultas entre fechas (mysql)

Eso es lo mejor. Evitarás problemas a futuro.
Te comento: Te pone 0000-00-00 como fecha cuando cambias el tipo de datos simplemente porque el dato que ya contiene ese campo esta de entada mal escrito.
¿Probaste la consulta tal como te la propuse? Debería haber funcionado.

Haz lo siguiente:
Crea un campo de tipo DATETIME en la misma tabla:
Código MySQL:
Ver original
  1. ALTER TABLE tabla ADD COLUMN fecha_nueva DATE;

Actualiza el campo, para no perder los datos viejos:
Código MySQL:
Ver original
  1. UPDATE TABLE fecha_nueva = STR_TO_DATE(campofechavieja, '%d/%m/%Y');

Prueba los datos:
Código MySQL:
Ver original
  1. SELECT fecha_nueva FROM tabla;
Si algún campo contiene NULL o "0000-00-00", es porque en ese registro la fecha estaba mal escrita y deberás ingresarlos a mano.
Si todo va bien,
Código MySQL:
Ver original
  1. ALTER TABLE tabla DROP COLUMN DROP campofechavieja;

Fijate tu mismo si lo que debe ir es DATE o DATETIME. En el segundo caso el patron del STR_TO_DATE debe ser:
Código MySQL:
Ver original
  1. STR_TO_DATE(campofechavieja, '%d/%m/%Y %H');
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)