Hallo zusammen,
ich habe ein kleines Problem mit den Datumsfunktionen, die
SQL bereitstellt.
Und zwar habe ich eine Art Kalender in einer
mySQL-Datenbank liegen. Mehrere Php-Skripts greifen darauf zu und sollen für verschiedene Tage: heute, morgen bzw. Rest der Woche die jeweiligen Einträge anzeigen.
Dies funktioniert im Regelfall auch problemlos... Allerdings kommt es dann zu Problemen, wenn ein Monatsende überschritten wird.
Also wenn heute der 31.01. ist zeigt er bei der Anzeige für morgen oder den Rest der Woche keine Einträge an, obwohl welche in der Datenbank stehen.
Ich denke ich weiß auch, wo das Problem steckt:
SQL-Code:
SELECT ...
FROM kalender WHERE vonDatum>CURDATE() and vonDatum<(CURDATE()+2) ORDER BY vonDatum
Ich gehe davon aus, dass
SQL bei Monatsübergängen nicht in der Lage ist aus 31.01. +2 ein 02.02. machen und stattdessen etwas à la 33.01. generiert.
Eine Lösung, die ich mir überlegt hatte, war alles mit DAYOFYEAR() zu verrechnen. Nur gibt es dann halt das Problem, dass auch Einträge aus dem letzten Jahr mit angezeigt würden.
Fällt euch da eine andere passende Funktion ein, die man benutzen könnte, oder wie würdet ihr die Abfrage gestalten?
MfG Patrick