Fechas Solapadas

27/04/2006 - 16:45 por DiegoC | Informe spam
Hola, estoy dando vueltas y no consigo armar una consulta que responda a lo
que necesito, a ver si alguien me puede dar una mano.

Tengo registros con info, que entre los campos tengo FechaDesde,FechaHasta,
HoraDesde, HoraHasta.
El tema es que cuando van a dar de alta un registro, tengo que validar que
no se solape con otro registro que que cubra ese rango de fechas y horas.

No se si me explico bien, por las dudas pongo un ejemplo:



FechaDesde FechaHasta HoraDesde HoraHasta
#1 01/01/05 10/01/05 08:00 10:00
#2 09/01/05 01/01/06 11:00 12:00

Al ingresar:
01/04/05 04/04/06 11:00 11:30 ERROR, no me lo
tendria que dejar ya que se solapa con el Reg2

Desde ya mchas gracias.

Saludos, Diego
 

Leer las respuestas

#1 Victor Koch
27/04/2006 - 18:13 | Informe spam
Hola Diego,

A ver analicemos los casos, graficamente nosotros tendriamos estas
combinaciones:

0. ++
1. +-+
2. +--+
3. +--+
4. ++

Si vemos el gráfico podríamos decir que si Desde es mayor o igual al campo
FechaDesde y menor o igual al campo HastaFecha no debería insertarce el
registro, con esta parte solucionamos el caso 2 y 4, también podemos decir
que si el campo Hasta es mayor o igual al campo FechaDesde y menor o igual
al campo HastaFecha tampoco debería insertarce el registro, con esta segunda
parte solucionamos el caso 1, por ultimo nos queda el caso 3, podríamos
decir que si Desde es menor o igual al campo FechaDesde y mayor o igual al
campo HastaFecha no debería insertarce el registro.
En resumen la sentencia debería ser:

SELECT * FROM mitabla WHERE
((Desde>=FechaDesde AND Desde<=FechaHasta)
OR
(Hasta>=FechaDesde AND Hasta<=FechaHasta)
OR
(Desde<=FechaDesde AND Hasta>=FechaHasta))

Si este select devuelve por lo menos un registro "NO" se debe insertar el
nuevo registro.
Faltaria agregar los controles de las fechas, particularmente creo que
hubiera sido mejor guardar la fecha y hora en un solo campo.

Un saludo, Víctor Koch.


"DiegoC" escribió en el mensaje
news:
Hola, estoy dando vueltas y no consigo armar una consulta que responda a


lo
que necesito, a ver si alguien me puede dar una mano.

Tengo registros con info, que entre los campos tengo


FechaDesde,FechaHasta,
HoraDesde, HoraHasta.
El tema es que cuando van a dar de alta un registro, tengo que validar que
no se solape con otro registro que que cubra ese rango de fechas y horas.

No se si me explico bien, por las dudas pongo un ejemplo:



FechaDesde FechaHasta HoraDesde HoraHasta
#1 01/01/05 10/01/05 08:00 10:00
#2 09/01/05 01/01/06 11:00 12:00

Al ingresar:
01/04/05 04/04/06 11:00 11:30 ERROR, no me lo
tendria que dejar ya que se solapa con el Reg2

Desde ya mchas gracias.

Saludos, Diego


Preguntas similares