Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2014, 10:32
Avatar de Crazylegs
Crazylegs
 
Fecha de Ingreso: septiembre-2013
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 10 años, 7 meses
Puntos: 14
Consulta con fechas de inicio y fin

Hola gente,

estoy bloqueado con una consulta que no consigo hacer.

Tengo una tabla similar a esta:
Cita:
Tasks
|------
|Columna|Tipo|Nulo|Predeterminado
|------
|//**id**//|int(11)|No|
|day_start|datetime|No|
|day_end|datetime|No|
|user_id|int(11)|No|

|-id|-day_start---------|-day_end-----------|-user_id|

|111|2014-04-03 09:00:00|2014-05-13 19:30:00|39

|112|2014-03-04 16:16:00|2014-03-12 19:00:00|39
Pues lo quiero es que dadas dos fechas (una de inicio y otra de fin) las cuales comprenden un intervalo de tiempo, me muestre las tareas que se encuentran en ese intervalo de tiempo, quepan o no quepan en el intervalo, de un determinado usuario.

Por ejemplo:

Fecha de inicio: 2014-02-24 00:00:00
Fecha final: 2014-04-05 00:00:00
id de usuario: 39

Me debe retornar la 111 y la 112 (la 111 no cabe en el intervalo pero empieza en este, 112 si cabe).


otro ejemplo:

Fecha de inicio: 2014-03-31 00:00:00
Fecha final: 2014-05-11 00:00:00
id de usuario: 39

Me debe retornar la 111 la cual empieza antes y acaba después del intervalo.

De momento tengo esta chapuza de consulta que no funciona correctamente:
Código MySQL:
Ver original
  1. FROM  `tasks`
  2. WHERE user_id =39
  3. AND (
  4. day_start >=  'fecha de inicio'
  5. OR day_end <=  'fecha final'
  6. )

No funciona correctamente porque si la fecha final es menor que day_start la retorna, y lo mismo pasa al revés, es decir, que la fecha de inicio sea mayor que el day_end.

¿Alguna sugerencia?
__________________
¡Mira mis tutoriales web!