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