yo,
wieso ist BETWEEN ein falscher Operator für Datumswerte? Das wäre mir sehr neu.
BETWEEN prüft ob ein punkt (ein wert) innerhalb einem Wertebereich liegt. was wir hier haben sind aber zwei zeitbereiche, die auf schnittmengen überprüft werden.
Ilja
Welche falschen Aussagen bekomme ich denn?
zum einen kannst du deine Abfrage nicht mit noch frei als Rückgabe bestätigen lassen, weil für einen Datensatz könnte sie frei sein, für einen anderen datensatz schon nicht mehr. das wird deutlich, wenn man mehrere zeitwerte in der tabelle zu stehen hat, nämlich einen der nicht überlagert und einen der überlagert.
zum anderen müsstest du mit BETWEEN alle möglichkeien (kombinatorik) durchgehen und mit OR verknüpfen. Ein Beispiel wenn deine query fälschlicherweise frei anzeigen würde wäre:
neuer_startwert < alter_startwert und neuer_endwert > alter_endwert
damit wären beide neue Werte nicht zwischen den alten werten, trotzdem überlagern sich die zeiträume.
Ilja