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

Comparar campo DATETIME de la tabla con fecha actual

Estas en el tema de Comparar campo DATETIME de la tabla con fecha actual en el foro de Mysql en Foros del Web. Buenos días, Pues quería saber como comparar un valor DATETIME de la base de datos con el típico formato "2010-4-21 00:00:00" con el valor de ...
  #1 (permalink)  
Antiguo 05/08/2010, 05:50
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 4 meses
Puntos: 0
Comparar campo DATETIME de la tabla con fecha actual

Buenos días,

Pues quería saber como comparar un valor DATETIME de la base de datos con el típico formato "2010-4-21 00:00:00" con el valor de la fecha actual, para saber si mi campo es mayor que la fecha actual.

Muchas gracias por todo
  #2 (permalink)  
Antiguo 05/08/2010, 06:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Comparar campo DATETIME de la tabla con fecha actual

Código MySQL:
Ver original
  1. FROM tabla
  2. WHERE DATE(campoFecha)>CURDATE();
No tiene sentido compararlos como datetime porque el DATETIME incluye los segundos y eso hará que sea TRUE con sólo un segundo de diferencia...
__________________
¿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 05/08/2010, 07:19
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Comparar campo DATETIME de la tabla con fecha actual

Gracias por contestar,

No funciona. Con la fecha de hoy como CURDATE() y '2010-08-06 00:00:00' como fecha para comparar no funciona, me devuelve el contrario, es decir:

select *
from tabla
where tabla.fecha > curdate() --> No devuelve nada

select *
from tabla
where table.fecha < curdate() --> Devuelve los campos

Trabajo con Navicat 8.

¿¿¿Alguna otra idea???
  #4 (permalink)  
Antiguo 05/08/2010, 07:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Comparar campo DATETIME de la tabla con fecha actual

Ese detalle ya te lo indiqué en el post:
Cita:
No tiene sentido compararlos como datetime porque el DATETIME incluye los segundos y eso hará que sea TRUE con sólo un segundo de diferencia...
El tema es que carece de sentido hacer comparaciones sobre la base de DATETIMES si vas a hacer una comparación contra la fecha del sistema, porque eso te devolverá TRUE o FALSE según cuándo se ejecute.
Si tuvieses la fecha "2010-08-06 00:00:00" en el campo, y la consulta la hicieses a las 23:59:59 del 05/08/2010, te daría TRUE, pero dos segundos después daría FALSE.
¿Se entiende la idea?
Y si lo que tuvieses fuese "2010-08-06 08:07:42" y la consulta la hicieses a las "2010-08-06 08:06:40", daría TRUE, pero daría FALSE a partir de "2010-08-06 08:07:43" ...

La consulta debe ser consistente...

La comparación dará resultados sí y sólo si coincide todo el DATETIME, pero si lo que quieres es comparar las fechas, como dijiste:
Cita:
Pues quería saber como comparar un valor DATETIME de la base de datos con el típico formato "2010-4-21 00:00:00" con el valor de la fecha actual, para saber si mi campo es mayor que la fecha actual.
debes forzosamente quitar la parte de TIME del DATETIME que tienes guardado:
Código MySQL:
Ver original
  1. FROM tabla
  2. WHERE DATE(campoFecha)>CURDATE();

En cualquier caso, si lo quieres comparar con la fecha y hora actuales, solamente debes cambiar de función:
Código MySQL:
Ver original
  1. FROM tabla
  2. WHERE campoFecha > NOW();

Insisto: Lo que te pasé cumple tu pedido. Si lo que quieres es otra cosa, debes aclarar exactamente lo que deseas...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 05/08/2010, 07:28
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Comparar campo DATETIME de la tabla con fecha actual

Joder, lo siento jefes. El problema es que la fecha del servidor estaba cambiada.
Gracias por todo

Etiquetas: comparar, datetime, fechas, tablas, campos
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:46.