Mailinglisten-Archive |
Knut Bueltemann schrieb: > > Also, so langsam komme ich aus dem Grinsen nicht mehr raus... :) > > Wenn Ihr wissen wollt, ob ein Datum in einem Zeitraum liegt, warum benutzt > Ihr nicht einfach den Datentyp DATE (darum gings in diesem Thread ja), und > laßt den SQL-Server die Daten vergleichen? > > SELECT * FROM Tabelle WHERE startdatum <= meindatum <= enddatum > > SELECT DAYOFYEAR(datum) > gibt den Tag des Jahres zurück > > SELECT (DAYOFYEAR(datum)-DAYOFYEAR(startdatum)) > gibt die Differenz zurück. > > Steht alles im MySQL-Manual. > Vielleicht liegt das daran, dass er die Daten vergleichen möchte, BEVOR sie in der Datenbank gespeichert werden ? Aber du hast recht: warum das Rad neu erfinden, wenn es jemand anders machen kann ;-) Allerdings sind die Funktionen, die du beschrieben hast, wirklich nicht geeignet dafür - die passen nämlich nur, wenn alle Daten innerhalb desselben Jahres liegen. Die richtige MySQL-Funktion lautet TO_DAYS('YYYY-MM-DD'). Die macht dann genau das, was ich letztesmal geschrieben habe (auch wenn es ein Jahr 0 nicht gibt ...). Gruss, Arne
php::bar PHP Wiki - Listenarchive