Überschneidungen von Zeiträumen in Mysql finden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
art
auslese
benutzen
blick
blockade
code
feld
hilfe
idee
information
jemand
probieren
starttermin
stelle
studieren
system
tabelle
verleih
zeile
zeitraum
-
Hallo,
ich arbeite gerade an einer Art Verleihliste.
Die Verleih-Informationen werden in einer Tabelle abgespeichert.
es gibt ein Feld, welches den Starttermin des Verleihens als unix-timestamp, sowie ein Feld, welches den Endtermin als Timestamp beinhaltet.
Ich möchte nun die Zeilen auslesen, in denen sich die Verleih-Zeiträume überschneiden.
Ich habe mich bereits daran versucht, aber irgendwie eine Blockade, daher hoffe ich auf eure Hilfe :)
Folgendes habe ich bisher:
SELECT * FROM `verleih` WHERE ((leihdatum >= '".$start_time."' AND leihdatum <= '".$end_time."') OR (rueckgabedatum >= '".$start_time."' AND rueckgabedatum <= '".$end_time."'))
$start_time ist der timestamp, zu dem verliehen wird
$end_tme ist der timestamp, an dem die Rückgabe erfolgt.
Liebe Grüße und vielen Dank -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du berücksichtigst etwas nur, wenn Zeitraum B binnen Zeitraum A liegt. Was du aber willst, ist eine Berücksichtigung immer dann, wenn eine Überschneidung vorliegt. AND kann man dazu nicht gebrauchen.
Edit: Sorry, habe das vorhin falsch verstanden. Dieser Beitrag kann gelöscht werden.
Beitrag zuletzt geändert: 7.5.2011 21:36:59 von drafed-map -
speedtouch92 schrieb:
Tut mir leid, aber ich blicke da nicht mehr durch.
Was kann ich denn anstatt von AND benutzen?
EDIT => Würde das so gehen?
where leihdatum BETWEEN $start_time AND $end_time OR rueckgabedatum BETWEEN $start_time AND $end_time
Probieren geht über studieren ;) An Stelle von AND und OR gibts auch noch XOR -
Ich hab jetzt einmal ein wenig getestet:
Bis auf einen Fall, erkennt der Code alle Überschneidungen:
Vorhandener Verleih vom 01.05.2011 bis zum 04.05.2011
Einzutragender Verleih vom 02.05.2011 bis zum 03.05.2011.
Dass es da Überschneidungen gibt, merkt das System nicht.
Hat da noch jemand eine Idee? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage