Mailinglisten-Archive |
am Wed, dem 06.06.2001, um 3:08:51 +0200 mailte Dietmar Möller folgendes: > Hallo Liste, > > wir hatten schon einmal einen ähnlichen Fall in der Liste, doch die > Antworten konnten mir leider nicht weiterhelfen. Das Problem: > > Zu Grunde liegt eine Tabelle "personen" die unter anderem das Geburtsdatum > in geburtsjahr, geburtsmonat und geburtstag unterteilt enthält. das ist IMHO schon ein kranker Ansatz, es gibt spezielle Datentypen für Datum. Im weiteren gehe ich von gesunden Datentypen aus. > Nun will ich per PHP die nächsten 5 Geburtstage vom heutigen Datum an > ausgeben. Mittels dieser umständlichen Programmierung gelingt es zwar alle > Geburtstage ab heute bis Jahresende auszugeben, aber das ist nicht mein > Ziel. Es muss doch möglich sein, schon in der Query eine entsprechende ja, das geht, zum Bleistift so: (sorry wg. zu langer Zeile) mysql> select dayofyear(now()) - dayofyear(Geburtstag) as tage, Geburtstag from Personen order by tage desc limit 5; Das Ergebnis mußt Du nur richtig interprtieren, Tage < 0 : die waren dieses Jahr schon Tage > 0 : die kommen dieses Jahr noch > Jahreswechsel hinweg. Schöne wäre es auch noch in einer zusätzlichen Spalte > dann das Alter auszugeben, welches an diesem Datum erreicht wird. dazu gibt es die year() - Funktion: year (now()) - year(Geburtstag) as age in den select-Teil mit einbauen, und Du hast das Alter in Jahren, welches dieses Jahr zum Geburtstag erreicht wird. Ist der Geburtstag nächstes Jahr, mußt Du 1 addieren. (alles als Schnellschuß, muß nun zur Arbeit) Andreas -- Diese Message wurde erstellt mit freundlicher Unterstützung eines frei- laufenden Pinguins aus artgerechter Freilandhaltung. Er ist garantiert frei von Micro$oft'schen Viren. (#97922 http://counter.li.org) Was, Sie wissen nicht, wo Kaufbach ist? : N 51.05082°, E 13.56889° ;-) --- !!NEU!! Fragen und Antworten zu MySQL und dieser Liste unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive