Frage von Dragon970, 25

MySQL Abfrage Anreise Abreise Verfügbarkeit?

Hallo, ich brauche eine Abfrage, um Doppelbuchungen zu vermeiden. In der Datenbank werden anreise und abreise gespeichert. Der An- bzw. Abreisetag kann auch gleichzeitig wieder An- bzw. Abreisetag sein.

Bisher habe ich dieses Statement: SELECT * FROM buchung WHERE ((STR_TO_DATE(anreise, '%d.%m.%Y') <= 'anreise' AND STR_TO_DATE(abreise, '%d.%m.%Y') >= 'anreise') OR (STR_TO_DATE(anreise, '%d.%m.%Y') <= 'abreise' AND STR_TO_DATE(abreise, '%d.%m.%Y') >= 'abreise') OR (STR_TO_DATE(anreise, '%d.%m.%Y') >= 'anreise' AND STR_TO_DATE(abreise, '%d.%m.%Y') <= 'abreise'))

Antwort
von wotan38, 5

Aus Deiner Anfrage geht weder hervor was sie bezwecken soll noch wie Deine Datenbank aufgebaut ist. Das, was ich erkennen kann, deutet auf ein chaotisches Konzept hin. Zum Speichern eines Kalenderdatums gibt es den Datentyp DATE. Du hast vermutlich CHAR verwendet. So kannst Du keine Datumsrechnungen durchführen, denn die Datenbank kann nicht erkennen, dass es sich um ein Datum handelt. Da nützt es auch nichts, wenn Du das Format umwandelst. Das Format spielt beim Datum in der Datenbank überhaupt keine Rolle, nur für die Ein- und Augabe ist das relevant. Intern wird das Datum als Zahl des Tages dargestellt, wenn man alle Tage zwischen dem 01.01.0001 und dem 32.12.9999 durchnummeriert. So kann man mit dem Datum rechnen und auch zwischen verschiedenen externen Formaten wählen.

Keine passende Antwort gefunden?

Fragen Sie die Community