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

Duda con condición y fechas

Estas en el tema de Duda con condición y fechas en el foro de Mysql en Foros del Web. Tengo dudas porque he creado esta condición en un query, pero parece no ser correcto. Cita: WHERE TO_DAYS(NOW())<=TO_DAYS('date3-date2-date1') date3 es un campo de mi base ...
  #1 (permalink)  
Antiguo 28/08/2008, 08:45
RJD
 
Fecha de Ingreso: enero-2006
Mensajes: 64
Antigüedad: 18 años, 3 meses
Puntos: 0
Duda con condición y fechas

Tengo dudas porque he creado esta condición en un query, pero parece no ser correcto.
Cita:
WHERE TO_DAYS(NOW())<=TO_DAYS('date3-date2-date1')
date3 es un campo de mi base de datos equivalente al año, date2 equivale al mes y date1 al día.

Lo que quiero es que me muestre los registros cuya fecha es igual o superior a HOY
Lo demás de la sentencia no lo copio porque lo considero irrelevante a la pregunta y funciona correctamente si no le hago la condición. El error está ahí

GRACIAS!
  #2 (permalink)  
Antiguo 28/08/2008, 09:38
RJD
 
Fecha de Ingreso: enero-2006
Mensajes: 64
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Duda con condición y fechas

He probado esto otro, pero tampoco da resultado... Alguien me puede echar una mano??
Cita:
WHERE TO_DAYS(NOW())<=TO_DAYS(date_format('date3 date2 date1', '%Y-%m-%d'))
Gracias de nuevo
  #3 (permalink)  
Antiguo 28/08/2008, 09:47
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Duda con condición y fechas

Creo que tienes mal estructurada tu tabla.
¿Por que crear un campo para año, otro para mes y otro para día?, todo debería estar dentro de un solo campo y dicho campo estar en formato DATE.

Se puede concatenar los campos para que forme la fecha, pero no sería lo optimo.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #4 (permalink)  
Antiguo 28/08/2008, 09:49
RJD
 
Fecha de Ingreso: enero-2006
Mensajes: 64
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Duda con condición y fechas

Ya, pero ahora ya es tarde, porque ya está organizado así. Cómo puedo hacer esa condición con lo que tengo ahora mismo de manera correcta??


Gracias por la respuesta ;)
  #5 (permalink)  
Antiguo 28/08/2008, 10:01
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Duda con condición y fechas

Lo que tienes es un "bola de nieve" cuanto mas tiempo pase mayor será tu problema.

No lo he probado (talvez contenga errores), pero puedes hacer esto, aunque no es nada optimo!

WHERE DATE(concat(date3,'-',date2,'-',date1)) => now()
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #6 (permalink)  
Antiguo 28/08/2008, 10:09
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, 5 meses
Puntos: 2658
Respuesta: Duda con condición y fechas

Cuidado con la conversión implícita de DATE a DATETIME:
Desde la versión 5.0, si comparas un DATE con un DATETIME, el DATE se convierte en DATETIME con la hora en cero. Esto quiere decir que suponiendo esto:

Código:
DATE(concat(2008,'-',08,'-',27))
se convertirá en '2008-08-27', pero al compararlo con NOW(), que devuelve un DATETIME se convertirá en '2008-08-27 00:00:00'.
Eso implica que la comparación real que sucederá puede ser por ejemplo así:

Cita:
'2008-08-27 00:00:00' => '2008-08-27 16:45:20'
lo que obviamente dará FALSE.
Si lo que quieres comparar son las fechas de ambos cassos, debería ser:

Código:
DATE(CONCAT(date3,'-',date2,'-',date1)) => DATE(NOW());
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 28/08/2008, 10:11
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Duda con condición y fechas

Gracias gnzsoloyo se me paso
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #8 (permalink)  
Antiguo 28/08/2008, 11:53
RJD
 
Fecha de Ingreso: enero-2006
Mensajes: 64
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Duda con condición y fechas

Perfecto! Muchas gracias! :)
De todos modos voy a unir los 3 campos, para optimizar como decís vosotros ;)


GRACIAS DE NUEVO
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 12:37.