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

Funcion DateDiff menos de 20 minutos

Estas en el tema de Funcion DateDiff menos de 20 minutos en el foro de Bases de Datos General en Foros del Web. Buenas amigos de foros del web...necesito de su ayuda !! Estoy desarrollando un sistema en el cual necesito comparar los sucesos registrados hace menos de ...
  #1 (permalink)  
Antiguo 06/05/2008, 00:15
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 16 años, 7 meses
Puntos: 0
Funcion DateDiff menos de 20 minutos

Buenas amigos de foros del web...necesito de su ayuda !!
Estoy desarrollando un sistema en el cual necesito comparar los sucesos registrados hace menos de 20 minutos-....comparo un campo llamado "time_accion" y compararlo con la hora actual y seleccionar los que se han registrado hace menos de 20 minutos....el campo solo guarda la hora en formato 24 hrs. de la forma HH:MM:SS
lo hago de esta forma :

Cita:
select *, DATEDIFF (minute, time_accion, getdate()) as difes from tblusuarios where DATEDIFF (minute, time_accion, getdate()) > 56982299 and DATEDIFF (DAY, fecha_accion, getdate()) = 0 and estado='online'
creo que de esa forma seria la correcta....pero dependiendo de la hora....a veces no me funciona bien ....
¿Como lo puedo solucionar?

De Antemano Muchas gracias
  #2 (permalink)  
Antiguo 07/05/2008, 03:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: Funcion DateDiff menos de 20 minutos

Cita:
....
el campo solo guarda la hora en formato 24 hrs. de la forma HH:MM:SS
....
and DATEDIFF (DAY, fecha_accion, getdate()) = 0
....
Guardas o no guardas la fecha de la acción...

Lo logico seria guardarla y lo mas logico guardar fecha y hora en el mismo campo, asi solo con una comparacion tendrias bastante.

Si los guardas por separado, como parece, yo intentaria construir un objeto datetime con los dos campos (no tengo la sintaxis aqui pero en la ayuda del motor de bases de datos que estes usando seguro que esta) y compararia el resultado con date().

En cualquier caso te tendria que quedar algo asi:

where DATEDIFF (minute, date_time_accion, getdate()) > 56982299 and estado='online';

Donde date_time_accion lo sutituyes por la funcion que concatena time_accion con fecha_accion.

Quim
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 21:52.