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

considerar dias entre rango de fechas

Estas en el tema de considerar dias entre rango de fechas en el foro de Mysql en Foros del Web. Estimados, junto con saludarlos les cuento mi problema; estoy desarrollando un sistema en el cual necesito saber si el periodo entre fechas ingresado por el ...
  #1 (permalink)  
Antiguo 03/10/2012, 11:53
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 11 meses
Puntos: 0
considerar dias entre rango de fechas

Estimados, junto con saludarlos les cuento mi problema; estoy desarrollando un sistema en el cual necesito saber si el periodo entre fechas ingresado por el usuario ya este ya lo ha pedido anteriormente o no, me explico por ejemplo el usuario quiere tomar sus vacaciones desde el 12/05/2012 hasta el 22/05/2012 y quiero saber necesito saber si este usuario a pedido vacaciones al menos un dia dentro de este mismo periodo, ya que si el usuario ya tiene aun q sea un dia registrado con vacaciones anteriormente entre el periodo pedido ahora ahí debo mostrarle el mensaje q ya tiene uno o mas días de vacaciones ya pedidos entre la s fechas ingresadas recientemente, la consulta q tengo para q me haga esto es:
Código MySQL:
Ver original
  1. SELECT Fun_Codigo, fecha_inicio, fecha_termino
  2. FROM feriados_permisos
  3. WHERE fecha_inicio BETWEEN '$fecha1' AND '$fecha2'
  4.      AND fecha_termino BETWEEN '$fecha1' AND '$fecha2'
  5.      AND feriados_permisos.Fun_Codigo='$codigo'
  6. GROUP BY fecha_inicio
Pero esta consulta solo me envía el mensaje cuando las fechas coinciden, me explico es decir cuando ingreso desde 12/05/2012 hasta 22/05/2012 y si la fecha 12/05/2012 o la fecha 2 22/05/2012 ya están ingresadas en la base de datos ahí me envía el mensaje avisando q ya tengo munas vacaciones pedidas en esa fecha, pero no me cuenta o no me toma encuenta los días q están entre esas fechas y si ingresara las fechas desde 15/05/2012 hasta 23/05/2012 ahí debería enviarme también el mensaje q ya tengo días de vacaciones pedidos entre ese rango de fechas, pero no me envía el mensaje , como podría lograr esto?? O de q manera debería hacer o acomodar la consulta sql q tengo actualmente para lograrlo?? Muchas gracias de antemano amigos, quedare atento a su ayuda/guía bye.

Última edición por gnzsoloyo; 03/10/2012 a las 12:54 Razón: SQL poco legible
  #2 (permalink)  
Antiguo 03/10/2012, 13:19
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: considerar dias entre rango de fechas

El secreto está en cómo realices la comparación de las alternativas que deben cumplirse y simplificarlas.
Hay varias condiciones:
- Empieza y termina dentro del período.
- Empieza durante y termina después.
- Empieza antes y termina durante.
- Empieza antes y termina después (contiene al periodo).
Las tres primeras tienen una singularidad: Al menos una de las fechas cae dentro del período, y si lo piensas, con sólo determinar eso, alcanza.
La última es necesaria porque no está comprendido en ninguno de los casos anteriores.
Entonces, la cosa sería mas o menos:
Código MySQL:
Ver original
  1. SELECT Fun_Codigo, fecha_inicio, fecha_termino
  2. FROM feriados_permisos
  3.     ((fecha_inicio BETWEEN '$fecha1' AND '$fecha2')
  4.     OR
  5.     (fecha_termino BETWEEN '$fecha1' AND '$fecha2')
  6.     OR
  7.     (fecha_inicio < '$fecha1' AND fecha_termino > '$fecha2'))
  8.     AND Fun_Codigo='$codigo'
  9. GROUP BY fecha_inicio
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/10/2012 a las 14:10
  #3 (permalink)  
Antiguo 03/10/2012, 13:26
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: considerar dias entre rango de fechas

Estimado, lo probare y te cuento q tal funciona todo para llegar a solucionarlo... desde ya muchas gracias
  #4 (permalink)  
Antiguo 03/10/2012, 13:56
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: considerar dias entre rango de fechas

Estimado muchas gracias por tu ayuda, me funciono a la perfeccion !!!!! muchas gracias :D (tema finalizado)

Etiquetas: dias, rango, select, sql
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 14:15.