Überschneidungen von Zeiträumen feststellen

Chosi

Mitglied
Hey ihr :)

Ich glaub', ich hab' mal ein etwas anspruchsvolleres Problem :(
Und zwar würde ich gern per MySQL überprüfen, ob sich eine Zeitspanne mit anderen in der Datenbank überschneidet.

Also ich habe immer eine Anfangs- und einen Endwert. Klar, ich könnte einfach schauen, ob Anfang oder Ende innerhalb des Zeitraumes liegen. Aber was, beide außerhalb dieses Bereiches liegen ?

Weiß nicht so, welche Möglichkeite und Funktionen MySQL so alles bietet, aber ich hoffe mal, dass das so funktioniert, sonst sehe ich nur eine Lösung darin, per PHP alle Datensätze durchzugehen :eek:

greetz
 
ich gehe mal davon aus das du in der datenbank und extern anfang und entzeitraum hast ...

als function gibt es bei mysql to_days ... ermittelt die anzahl der tage ....

die erste abfrage ermittelt ob die startzeitdb kleiner endzeitvorgabe ist:

to_days(dbstartdat) < to_days($vorgabeend)

die nächste muss dann abfragen ob endzeitdb grösser startvorgabe ist

to_days(dbenddat) > to_days($vorgabeanf)

also falls ich kein denkfehler habe:

select * from db where to_days(dbstart) < todays($vorend) and to_days(dbend) > to_days($voranf)

gibt dann die datensätze aus wenn sich die zeiträume überscheiden
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück