Prüfen, ob sich zwei Zeitbereiche schneiden. Nur wie?
-
Moin,
ich hab da mal ein Problem, welches ich auch mit googeln nicht so recht gelößt bekam.
Ich habe eine Tabelle mit zwei Datum/Zeit Angaben: Arbeitszeit-Von und -Bis
Ein paar Beispiele:
2010-11-30 01:00:00.000 2010-11-30 09:30:00.000 X 2010-11-30 09:30:00.000 2010-11-30 16:00:00.000 X 2010-11-30 17:45:00.000 2010-11-30 18:45:00.000 2011-04-13 13:00:00.000 2011-04-13 18:00:00.000 2010-11-30 03:00:00.000 2010-11-30 08:00:00.000 2010-11-30 08:00:00.000 2010-11-30 09:45:00.000 X 2010-11-30 13:00:00.000 2010-11-30 17:45:00.000 X
Wie stell ich das nun an, dass ich bei einem Select nur jene zurückgeliefert bekomme, welche in den Zeitraum 2010-11-30 09:00 Uhr bis 14:00 fallen?
Zur Verdeutlichung habe ich die, welche ich bekommen will, mit einem X markiert.
Habt vielen Dank,
Die AggroMottePS: Ich arbeite (leider) mit MS SQL . Nur falls es hilft.
-
Hi,
mit BETWEEN kannst du eine range angeben.
Z. B.
SELECT * FROM tblZeiten WHERE login_time BETWEEN '2011-10-20 09:00' AND '2011-10-20 14:00'
Die Zeitangabe müsstest du evtl. für dein DBMS anpassen.
-
Danke shadow, der Tipp half mir weiter.
Gelöst habe ich es so:
((( '25.10.2011 09:00' BETWEEN DateVon AND DateBis ) AND ( '25.10.2011 14:00' BETWEEN DateVon AND DateBis )) OR (( DateVon BETWEEN '25.10.2011 09:00' AND '25.10.2011 14:00' ) OR ( DateBis BETWEEN '25.10.2011 09:00' AND '25.10.2011 14:00' )))
Gruß,
Motte