Hi!
Zusammengekürzt ergibt sich, dass der Mietbeginn vor dem Monatsende liegen muss _und_ das Mietende nach dem Monatsanfang. Und mit dieser Ausformulierung kann man wesentlich einfacher den zugehörigen Code finden.
Das Mietende kann auch genau der Monatsanfang sein, wenn zum Beispiel jemand einen Parkplatz vom 2011-09-01 bis 2011-09-01 mietet.
Der Monats- und Mietanfang ist 0 Uhr, das Monats- und Mietende ist immer 23:59:59. Die Uhrzeiten musst du mit berücksichtigen oder für das Mietende immer einen Tag später nehmen (+ INTERVAL 1 DAY). Wenn der erste Tag gemietet wurde, ist - mit Beachtung der Uhrzeit - der Beginn 0 Uhr vor dem Mietende 23:59. Beim addierten Tag ist es vergleichbar.
Danke schonmal für die exakte Formulierung!
Bitte, aber du hast sie nicht so umgesetzt.
Ich habe es mal versucht in SQL umzuschreiben:
WHERE MietBeginn BETWEEN '2000-01-01' AND '2011-09-31'
AND MietEnde BETWEEN '2011-09-01' AND '3000-01-01'
Ich sagte nicht "von-bis" sondern ein "größer als" und ein "kleiner als"
Wenn ich das so versuche bekomme ich folgende Meldung: "Fehler beim Konvertieren einer Zeichenfolge in ein Datum und/oder eine Uhrzeit."
Es liegt wahrscheinlich daran, dass ich nicht einfach so zwei BETWEEN's verwenden kann :(
Doch, das kannst du schon. Es führt im schlimmsten Fall zu nicht oder falsch gewählten Datensätzen. Das Problem könnte aber ein schlecht gewählter Feldtyp sein. Hast du für die Datenfelder einen Stringtyp oder DATE/DATETIME genommen?
Lo!