Zeitraum im Zeitraum

kaeZe

Grünschnabel
Hallo,

ich habe 2 Usereingaben - Ein Anfangsdatum und ein Enddatum.
In der MySQL-Datenbank habe ich Einträge, die auch jeweils ein Anfangs- und ein Enddatum besitzen.

Ich möchte herausfinden, ob bestimmte Sachen in dem vom User genannten Zeitraum, verfügbar sind.

Zurzeit habe ich folgenden Befehl:
Code:
SELECT bla FROM bla WHERE ("'.$UserAnfangsDatum.'" BETWEEN DBAnfangsDatum AND DBEndDatum OR "'.$UserEndDatum.'" BETWEEN DBAnfangsDatum AND DBEndDatum;

Mit diesem haut es MEISTENS hin, aber es haut nicht hin, wenn die Datenbank-Daten gleich sind. Also z.B.

DBAnfangsDatum ist 2010-11-11
DBEndDatum ist 2010-11-11
$UserAnfgangsDatum ist 2010-11-10
$UserEndDatum ist 2010-11-13

Mit diesen Werten klappt es nicht. Also habe ich mir überlegt mit PHP alle Tage zu durchlaufen, die zwischen $UserAnfgangsDatum und $UserEndDatum liegen und jeden einzelnen mit der DB zu überprüfen.
Kann mir jemand sagen, wie ich das hinkriegen könnte?
Oder vielleicht doch mit MySQL lösbar?
 
Muss die Abfrage nicht so aussehen:

SQL:
SELECT bla FROM bla WHERE  DBAnfangsDatum >= $UserAnfangsDatum AND DBEndDatum <= $UserEndDatum
 
Zuletzt bearbeitet:
Ich glaube er will auch überschneidungen.

A von X bix X+15 gültig ist
B von Tag X+5 bis X+20

B ist im Zeitraum von A verfügbar

Also muss entweder der Startpunkt oder der Endpunkt innerhal der Periode liegen

SQL:
SELECT *
FROM mytable
WHERE 
    db_from BETWEEN {$userFrom} AND {$userTo} 
    OR db_TO BETWEEN {$userFrom} AND {$userTo}

Ob ich das die Drage richtig verstanden habe, weiss ich aber auch nicht
 
Zuletzt bearbeitet von einem Moderator:
Zurück