Mit dem unten dargestellten SQL Statement werden zunächst zwei Zeitscheiben simuliert. Im zweiten Schritt wird abgefragt, in wie viel Zeitscheiben das Jahr 2020 liegt. Tatsächlich soll immer nur eine Scheibe selektiert werden. Wir müssen uns die Frage stellen, wie die Zeitscheiben modelliert sind.
Entspricht die Obergrenze des ersten Intervalls der Untergrenze des nachfolgenden Intervalls muss die Gleichheit bei er Abfrage an der oberen Grenze ausgeschlossen werden. Die Funktion between ist somit nicht verwendbar.
Das nachfolgende Beispiel kann auf jeder Oracle Datenbank ausgeführt werden.
with jahres_scheiben as( select 2010 unten, 2020 oben from dual union all select 2020 unten, 2029 oben from dual ) ----------------------------------------------------------------- select '2020 BETWEEN oben und unten' Operator, unten, oben from jahres_scheiben where 2020 between unten and oben union all ----------------------------------------------------------------- select '2020 >= unten und 2020 < oben' Operator, unten, oben from jahres_scheiben where 2020 >= unten and 2020 < oben union all ----------------------------------------------------------------- select '2020 >= unten und 2020 <= oben' Operator, unten, oben from jahres_scheiben where 2020 >= unten and 2020 <= oben;