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

Ayuda con fechas y between

Estas en el tema de Ayuda con fechas y between en el foro de Bases de Datos General en Foros del Web. Hola a todos! primero que nada aclaro que estube leyendo un poco por ahi y mirando otros posts y aun no puedo solucionar mi problema.. ...
  #1 (permalink)  
Antiguo 26/05/2009, 21:20
 
Fecha de Ingreso: octubre-2004
Mensajes: 107
Antigüedad: 19 años, 7 meses
Puntos: 0
Ayuda con fechas y between

Hola a todos!
primero que nada aclaro que estube leyendo un poco por ahi y mirando otros posts y aun no puedo solucionar mi problema..

mi problema es el siguiente..

tengo una tabla en mysql de turnos... entre esos datos de turnos tengo 2 campos de fechas que indican el intervalo del turno, por ejemplo: fechainicio= 2009-05-25 , fechafin= 2009-05-30 ademas de 2 campos TIME que indican un intervalo de horas.
La idea es que los turnos son en ese intervalo de dias y por cada dia se verifica el intervalo de horas.

Ahora bien, lo que necesito es que si el usuario intenta crear un nuevo turno puede haber problemas de superposicion y eso que lo que no puedo descifrar...
es decir, supongamos que el usuario quiere crear un nuevo turno desde el 2009-5-23 al 2009-05-27 y a la misma hora que el que puse en el ejemplo anterior, evidentemente deberia fallar ya que se superponen los dias 25, 26 y 27...

no se si me explique bien, mi idea es hacer una consulta que busque el o los dias de conflico entre el nuevo turno que quiero crear y los turnos ya existentes en la base de datos, y si la consulta es vacia (es decir, no hay conflico) entonces puedo crear el turno efectivamente.

Muchas gracias y perdon si no me expreso correctamente :P
  #2 (permalink)  
Antiguo 26/05/2009, 21:50
 
Fecha de Ingreso: octubre-2004
Mensajes: 107
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: Ayuda con fechas y between

Ya lo pude solucionar, lo respondo por si alguien tiene una duda similar asi ya queda.

La consulta que hago es controlo si existe algun turno que tenga fecha de inicio entre el intervalo de dias que especifica el usuario o si un turno ya existente tiene fecha de finalizacion entre el intervalo que el usuario ingreso y ademas controlo si la hora de inicio del turno esta entre las horas especificadas por el usuario o la hora de finalizacion esta entre el intervalo espeficiado por el usuario.

en conclusion:

( (fechainicio between $fechainiciousuario and $fechafinusuario) or (fechafin between $fechainiciousuario and $fechafinusuario) ) AND ( (horainicio between $horainiciousuario and $horafinusuario) OR (horafin between $horainiciousuario and $horafinusuario) )

que lo disfruten :P
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:59.