phpbar.de logo

Mailinglisten-Archive

Geburtstage

Geburtstage

Andreas Kretschmer mysql_(at)_lists.phpcenter.de
Wed, 6 Jun 2001 06:07:56 +0200


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