[MySQL] Abfrage von Date Feldern

Romsl

Erfahrenes Mitglied
Hi,

Ich habe folgendes Problem. In einer Tabelle sind Anreise-Datum (DATE) und Abreise-Datum (DATE) definiert.

Jetzt habe ich zum Beispiel Anreise-Datum = 2004-08-12 und Abreise-Datum = 2004-10-06

Ich möchte einen Belegungsplan der Zimmer machen. Die Anzeige soll in Monatsschritten erfolgen. Das GUI habe ich schon und funktioniert auch.

Meine Frage ist jetzt, wie bekomme ich dieses Tuple auf die Anfrage September (2004-09-01 bis 2004-09-30) zurück?

Danke

Romsl
 
Ja, das dachte ich auch. Funktioniert aber leider nicht mit einem Datum wie oben im genannten Beispiel.

Hot noch jemand eine Idee?

Danke
 
Autsch! :eek:
Ich habe zu schlampig gelesen gelesen. :-(
Wenn du das für ganze Monate machen willst, wäre das dann mit
PHP:
SELECT * FROM tabelle 
WHERE LEFT(Anfangsdatum)<=LEFT($monat) 
AND LEFT(Enddatum)>=LEFT($monat)
zu lösen, oder?
 
Hi,

versteh die Anfrage nicht.

Sind Anfangsdatum und Enddatum Felder (Attribute) in einer Tabelle? und $monat nur der Monat (z.B. 09)?

Danke für deine Hilfe

Romsl
 
Zuletzt bearbeitet:
Ja. - Du hast doch für jede Buchung ein Anfangsdatum und ein Enddatum (als Spalten in der Tabelle).
$monat wäre in diesem Falle eine Variable (PHP-Schreibweise), in dem ein vollständiges Datum steht und soll in dem Monat sein, für den du die Belegungen wissen möchtest.
Die Funktion LEFT() ist übrigens nich ganz komplett.
Da muss natürlich noch dahinter, wieviele Zeichen du denn haben möchtest.
 
Hi,

ich habs jetzt hinbekommen. Sieht ein wenig abstrus aus, aber es funktioniert. Wenn jemand eine bessere Lösung hat lass ich mich da gerne belehren und werde diese dann natürlich auch verwenden.

Code:
SELECT Reservierungen_2.`ZID`, Reservierungen_1.`Anreise-Datum`, Reservierungen_1.`Abreise-Datum`, Reservierungen_1.`ReID` 
FROM Reservierungen_1, Reservierungen_2 
WHERE Reservierungen_1.`ReID` = Reservierungen_2.`ReID` AND 
((Reservierungen_1.`Anreise-Datum` >= '2004-9-01' AND Reservierungen_1.`Abreise-Datum` <= '2004-9-31') OR 
 (Reservierungen_1.`Anreise-Datum` <= '2004-9-01' AND Reservierungen_1.`Abreise-Datum` > '2004-9-01') OR 
((Reservierungen_1.`Anreise-Datum` >= '2004-9-01' AND Reservierungen_1.`Abreise-Datum` > '2004-9-01') AND (Reservierungen_1.`Anreise-Datum` <= '2004-9-31' AND Reservierungen_1.`Abreise-Datum` > '2004-9-01'))) 
ORDER BY Reservierungen_2.`ZID`, Reservierungen_1.`Anreise-Datum` ASC

Gruß

Romsl
 
Zurück