Dieter: Datumbereiche abgleichen (MySQL)

Hallo,
ich möchte einen Datumsbereich (Start und Ende je Timestamp) innerhalb einer MySQL-Abfrage abgleichen, d.h. ob sich der Bereich
mit einem bereits gespeichertem Bereich deckt bzw. überschneidet.
Hierzu müsste ich also innerhalb der Query feststellen ob
Datumbereich A (von - bis) mit bereits in der DB vorhandenen Bereichen (von - bis) überschneiden würde.
Leider waren meine bisherigen (Anfänger-)Versuche mit OR-Vergleichen nutzlos...
Daher die anfrage an euch: Wie geht das innerhalb einer (!) Abfrage ?
Viele Grüße
Dieter

  1. hi,

    ich möchte einen Datumsbereich (Start und Ende je Timestamp)

    Spaltentyp TIMESTAMP von MySQL hoffentlich?

    innerhalb einer MySQL-Abfrage abgleichen, d.h. ob sich der Bereich
    mit einem bereits gespeichertem Bereich deckt bzw. überschneidet.
    Hierzu müsste ich also innerhalb der Query feststellen ob
    Datumbereich A (von - bis) mit bereits in der DB vorhandenen Bereichen (von - bis) überschneiden würde.

    Sowas wie
    WHERE (spalte_von BETWEEN gesucht_von AND gesucht_bis) OR (spalte_bis BETWEEN gesucht_von AND gesucht_bis)
    ?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo wahsaga !

      JAAA, Danke !! BETWEEN - das ist das was ich gesucht hatte, nur leider habe ich es in meinem vorliegenden Dokus nicht gefunden.
      Eine Frage habe ich aber noch:
      Wiso ist es eigentlich wichtig, den Timestamp in der MySQL auch
      als Timestamp zu typerisieren ?

      Gruss
      Dieter

      1. hi,

        Wiso ist es eigentlich wichtig, den Timestamp in der MySQL auch
        als Timestamp zu typerisieren ?

        Weil man dann auch vernünftig mit den Datums- und Zeitfunktionen von MySQL darauf operieren kann.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. echo $begrüßung;

        Wiso ist es eigentlich wichtig, den Timestamp in der MySQL auch als Timestamp zu typerisieren ?

        Was wahsaga vermutlich meint, ist nicht nur der MySQL-Feld-Typ TIMESTAMP, sondern generell einen der Date and Time Types zu verwenden, anstatt beispielsweise ein Integer-Feld mit einem Unix-Timestamp zu bestücken. Der TIMESTAMP hat (außer dem geringeren Wertebereich gegenüber DATETIME) einen eingebauten Zauber. Wenn man den nicht benötigt, sollte man einen der anderen Typen verwenden.

        echo "$verabschiedung $name";