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 AggroMotte

    PS: 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


Anmelden zum Antworten