Jeg er ikke 100% klar over dine krav. I din åbningslinje bad du om poster "hvor inputdatointervallet falder mellem to datofelter", men i linjen "Yderligere" antyder du, at du ikke ønsker at returnere poster, hvor startdatoen for aftalen ikke er lig. slutdatoen for dit input. Jeg opfatter det som to forskellige krav, så jeg vil give dig to forskellige forespørgsler.
Den første forespørgsel er:
from t1 in db.Appointments
where date1 >= t1.AppointmentStart
where date2 <= t1.AppointmentEnd
select t1;
Den anden forespørgsel er:
from t1 in db.Appointments
where date2 > t1.AppointmentStart
where date1 < t1.AppointmentEnd
select t1;
Den første forespørgsel returnerer poster, der "indeholder" inputdatoer.
Den anden forespørgsel returnerer poster, der "overlapper" inputdatoerne.
Jeg synes, det giver mere mening, at du vil have overlapningsforespørgslen, og denne vil opfylde dit krav "14:00 - 15:00 returnerer ikke en værdi for 15:00-16:00".
Fortæl mig, hvis jeg begik en fejl ved at forstå dine krav og skal foretage ændringer.