Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error en DATE_FORMAT()

Estas en el tema de Error en DATE_FORMAT() en el foro de Mysql en Foros del Web. Hola a todos...! MySQL me da este error y realmente no se como solucionarlo por que no entiendo a que se debe. Resulta que hago ...
  #1 (permalink)  
Antiguo 15/11/2011, 08:06
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Error en DATE_FORMAT()

Hola a todos...!

MySQL me da este error y realmente no se como solucionarlo por que no entiendo a que se debe.

Resulta que hago una consulta:

Código PHP:
$query "SELECT * 
FROM users 
WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) = DATE_FORMAT(extra_info, '%Y-%m-%d') 
ORDER BY nombre"

y me muestra correctamente el resultado, pero cuando hago este INSERT a otra tabla:

Código PHP:
$guardar mysql_query("INSERT INTO users_inactivos (id, login, registro, extra_info)
SELECT 
id, login, registro, extra_info
FROM users
WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) = DATE_FORMAT(extra_info, '%Y-%m-%d')"
) or die(mysql_error()); 
Me da el error: Truncated incorrect datetime value: ''

He buscado información pero no doy con ella. ¿Por favor, alguien me puede orientar o ayudar?
  #2 (permalink)  
Antiguo 15/11/2011, 08:55
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Error en DATE_FORMAT()

Empecemos desde el principio:
1. El campo extra_info de la tabla users_inactivos, ¿es un DATE o un DATETIME?
2. El campo extra_info de la tabla users, ¿es un DATE o un DATETIME?
3. Si USERS.exra_info es un DATETIME, usar DATE_FORMAT() es innecesario. Basta con extraer la parte fecha del dato:
Código MySQL:
Ver original
  1. id, login, registro, extra_info
  2. FROM users
  3. WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) = DATE(extra_info)

Creo que estás complicando las cosas más de lo debido. Lee un poco más de las funciones de fecha y hora para ver realmente lo que necesitas usar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/11/2011, 09:22
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Error en DATE_FORMAT()

Hola gnzsoloyo, gracias por ayudarme!

Es verdad, es más simple con DATE(extra_info)

En las 2 tablas el campo extra_info es DATETIME, es decir:" Y-m-d H:i:s"

El problema es que al querer insertar los datos de una tabla a otra me da el error:

Truncated incorrect datetime value: ''

Teoricamente, si en el SELECT funciona, tendría que funcionar en el INSERT INTO... pero no es así, algo estoy haciendo muy mal y no me doy cuenta!

Etiquetas: query, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:11.