2009-11-15 18 views
6

Estoy tratando de escribir una consulta donde puedo eliminar un timediff de menos de 2 minutos. He intentado variaciones en los siguientes, que no devuelve ningún resultadotimediff es mayor que 2 minutos

timediff(sessions.producer_on,sessions.producer_off)>'00:02:00' 

la TIMEDIFF sin la> funciona bien y devuelve todos los resultados - Tengo dificultades con la> 00:02:00 condición. ¿Alguien puede ayudar? Muchas gracias

+0

Considere seleccionar la "mejor respuesta" si Vincent brindó una solución para usted. – qodeninja

Respuesta

7

Necesita extraer el minuto de la hora y luego compararlo.

minute(timediff(sessions.producer_on,sessions.producer_off)) > 2 AND 
hour(timediff(sessions.producer_on,sessions.producer_off)) = 0 

También puede ser necesario para asegurarse de que la hora es 0 ya que sólo cuando la hora es cero realidad no importa la hora.

+0

nice one - funciona perfectamente - muchas gracias –

+0

No hay problema. Encantado de ayudar. –

8

Esta es probablemente la "vieja manera", sino que elimina la necesidad de comprobar horas, días, etc.

UNIX_TIMESTAMP(fieldOne) - UNIX_TIMESTAMP(fieldTwo) < 120 

También puede utilizar NOW() en lugar de un nombre de campo.

6

cambiarlo a

timediff(sessions.producer_on,sessions.producer_off) > TIME('00:02:00')

y debería funcionar.

Cuestiones relacionadas