Hello,
BETWEEN verarbeitet drei Werte. Du hast aber vier Werte, nämlich jeweils Start und Ende des neuen und des alten Zeitraums. Du brauchst zwei Bedingungen: die erste prüft, dass der neue Starttermin nicht in eine Belegung fällt und die zweite prüft, ob das auf den neuen Endtermin ebenso zutrifft.
...und vorher prüfen, ob der gewünschte Endtermin größer als der gewünschte Starttermin ist.
Umgekeht bahnt sich ja auch schon das Problem an, das ich bei einer Ausgabe einer Wochen oder Monatsübersicht auch die Zeiträume "zwischen" meinen Start- und Endtimestamps berücksichtigen müsste...
Inwiefern? Du kannst keine Daten abfragen, die nicht vorhanden sind. Du müsstest einen Kalender anderswoher nehmen und die belegten Zeiten eintragen. Der Rest bleibt nicht markiert, ist also frei.
Es bleibt trotzdem die Frage, wie man einen bedingten Insert aufbaut, damit der nur durchgeführt wird, wenn ein Select() _keinen_ Datensatz geliefert hat.
Bekommt man das mit http://dev.mysql.com/doc/refman/5.1/de/insert-select.html hin?
Denn die Trennung von Select und Insert bereitet ja schon wieder andere Probleme ;-P
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg