echo $begrüßung;
Verwende eine Spalte vom Typ DATE.
Hat er das nicht bereits getanAnreise und Abreise sind vom Typ Date - 00-00-0000
Ah ja. Das Format war, weil es in der unsortierbaren Weise notiert war und nicht dem Systemdefault-Wert entspricht, auffälliger als das Wort Date, so dass ich letzteres überlas.
Die Frage des OP richtet sich mehr auf das Problem, wie man mit einer
Abfrage feststellt, dass sich zwei definierte Zeiträume überschneiden.
BETWEEN war eigentlich auch das, was ich im Sinn hatte. Irgendjemand muss das in meinem Speicher nach der letzten Benutzung falsch abgelegt haben, so dass ich es fälschlicherweise mit den Datums- und Zeit-Funktionen verband. Ist natürlich Käse, da BETWEEN auch mit anderen Operanden als Zeit-Elementen arbeiten kann. Also wäre die Comparison Functions and Operators-Seite angebrachter gewesen.
SELECT 1 FROM MeineTabelle
WHERE @neuesAnreiseDatum NOT BETWEEN [Anreise] AND [Abreise] ...
> Wenn NULL zurückkommt [...]
Erlaubst du zwei kleine Korrekturen? Feldnamen werden unter MySQL nicht ge-[]-klammert sondern ge`backtick`t (was man nur tun muss, wenn man reservierte Bezeichner oder bestimmte Sonderzeichen im Feldnamen verwendet). Wenn es keine Ergebnismenge gibt, gibt MySQL gar nichts zurück, noch nicht einmal NULL. Der Aufruf einer Fetch-Funktion liefert dann einen Statuswert, der aussagt, dass keine (weiteren) Reihen verfügbar sind.
echo "$verabschiedung $name";