mysql: Mit Datum rechnen, ohne Uhrzeit zu beachten

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Sprint

Erfahrenes Mitglied
Hallo zusammen,

ich bin gerade dabei, eine Monatsabrechnung zu erstellen. Dabei sollen alle Kaufverträge berücksichtigt werden, die älter als 5 Tage sind.

Jetzt kann es aber sein, daß ein Kaufvertrag storniert wird. Ist das Stornodatum später als 5 Tage nach Vertragsdatum, soll er ausgegeben werden. Wurde nach weniger als 5 Tagen storniert, wird der Vertrag nicht berücksichtigt.

Kaufvertragsdatum und Stornodatum sind als DATETIME gespeichert. Es soll aber nur das Datum bei der Berechnung der Spanne berücksichtigt werden. Egal ob der Kaufvertrag am Vormittag, Nachmittag oder mitten in der Nacht geschlossen wurde.

Code:
SELECT distinct * 
    FROM kaufvertrag kv, 
        kvnr kn 
    WHERE 
        kv.kvid = kn.kvnr and 
        kv.kaufdatum < '$maxdatum' and
        (kn.stornodatum = '0000-00-00 00:00:00' or kn.stornodatum > date_add(kv.kaufdatum, interval 5 day))

Wenn ich das so mache, werden zwar die richtigen Datensätze ausgegeben, aber in Abhängigkeit von den beiden Uhrzeiten. Unter PHP wäre das kein Problem, aber ich möchte auch gleich bei der Abfrage die richtige Anzahl an Datensätzen wissen und nicht erst später.

Habt ihr einen Tip für mich?

Danke schon mal im Voraus, Sprint
 
Ich bin nicht so der mySQL-Kenner, aber mit DATE() müsstest Du das eigentlich umwandeln können.

Nebenbei: Versuche, SELECT * zu vermeiden. Es ist besser, immer die betreffenden Spalten zu benennen, also z.B. SELECT kvid, kaufdatum FROM....
Falls sich aus irgendeinem Grund mal Deine Tabellenstruktur ändert könntest Du sonst Probleme im Resultset haben.
 
Danke für den Tip, ich hab es schlussendlich hinbekommen. Ich hatte nicht daran gedacht, DATE_ADD und DATE zu kombinieren.
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Zurück