phpbar.de logo

Mailinglisten-Archive

RE: alter aus geburtsdatum?
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: alter aus geburtsdatum?



ich habe in der zwischenzeit folgenden ausdruck "gefunden"

	select (TO_DAYS(curdate())+1 - TO_DAYS('1969-07-11')) / 365.25

wenn ich deinen ausdruck nehme und z.b.

SELECT FLOOR( PERIOD_DIFF(
                             DATE_FORMAT(CURRENT_DATE,'%Y%m')
                            ,DATE_FORMAT('1908-07-20','%Y%m')
                           ) / 12
              ) AS Alter_in_J;

abfrage, dann kommen nur 19 jahre raus, das stimmt aber nicht (18 waere der
preis gewesen),
oder habe ich irgendeinen denkfehler?
richtig waere da eher, warun ich jetzt durch 1200 teilen muss, keine
ahnung...

SELECT floor( PERIOD_DIFF(
                             DATE_FORMAT(CURRENT_DATE,'%Y%m%d')
                            ,DATE_FORMAT('1980-07-14','%Y%m%d')
                           ) / 1200
              ) AS Alter_in_J;

mfg

Markus Rietzler
* Wuppertal-Forum | Wuppertal-Navigator
* http://www.wuppertal-forum.de
* http://www.wuppertal-navigator.de
* eMail: markus.rietzler_(at)_wuppertal-forum.de

Ronsdorfer Strasse 14	Fon: 0202.42 08 30
42119 Wuppertal		Fax: 0202.242 24 66
				Mobil: 0171.480 77 82


> -----Original Message-----
> From: Martin Ramsch [mailto:m.ramsch_(at)_computer.org]
> Sent: Wednesday, July 14, 1999 3:01 PM
> To: mysql-de_(at)_lists.4t2.com
> Subject: Re: alter aus geburtsdatum?
>
>
> Markus Rietzler schrieb am Samstag, den 10. Juli 1999:
> > wie kann ich aus einem gegebenen geburtsdatum das alter einer person
> > berechnen.
>
> Das kommt jetzt ganz darauf an, wie Du dieses Alter willst: in Jahren,
> in Monaten, Tagen oder Sekunden?
>
> Nehmen wir mal an, das Geburtsdatum geb stammt aus einer Tabelle und
> ist vom Feldtyp DATE.
>
> WICHTIG:  Alle Formeln, die Unix-Timestamps benutzen, funktionieren
>           nur mit Daten >= 1.1.1970 richtig.
>           Also besser auf Unix-Timestamps verzichten, wenn möglich!
>
> Nicht ganz so wichtig:
>           Auch die Funktionen TO_DAYS und FROM_DAYS haben Grenzen,
>           nämlich den Anfangspunkt des gregorianischen Kalenders 1582.
>           Daten davor lassen sich mit diesen Funktionen nicht
>           handhaben.
>
> * Alter in Sekunden:
>
>   # Daten >=1.1.1970!
>   SELECT UNIX_TIMESTAMP()-UNIX_TIMESTAMP('1969-05-06') AS
> Alter_in_s FROM ...
>
> * Alter in Stunden ("HH:MM:SS"):
>
>   # Daten >=1.1.1970!
>   SELECT SEC_TO_TIME(
>                       UNIX_TIMESTAMP()-UNIX_TIMESTAMP('1969-05-06')
>                     ) AS Alter_in_h FROM ...
>
> * Alter in Tagen:
>
>   SELECT TO_DAYS(CURRENT_DATE)-TO_DAYS('1969-05-06') AS Alter_in_T;
>
>   Achtung: Die Funktion FROM_DAYS ist nicht dafür geeignet, um diese
>            Alter in Tagen in ein Datum der Form YYYY-MM-DD
>            umzurechnen, da es ein Datum vor 1582 wäre.  Auch wenn es
>            evtl. funktioniert, warnt das MySQL-Handbuch davor!
>
> * Alter in Monaten:
>
>   (Auch hier besser nicht mit Tagen rechnen, weil Monate ja nicht gleich
>    lang sind.)
>
>   SELECT PERIOD_DIFF(
>                       DATE_FORMAT(CURRENT_DATE,'%Y%m')
>                      ,DATE_FORMAT('1969-05-06','%Y%m')
>                     ) AS Alter_in_M;
>
> * Alter in Jahren:
>
>   # Als Kommazahl.
>   SELECT PERIOD_DIFF(
>                       DATE_FORMAT(CURRENT_DATE,'%Y%m')
>                      ,DATE_FORMAT('1969-05-06','%Y%m')
>                     ) / 12 AS Alter_in_J;
>
>   # Als ganze Zahl
>   SELECT FLOOR( PERIOD_DIFF(
>                              DATE_FORMAT(CURRENT_DATE,'%Y%m')
>                             ,DATE_FORMAT('1969-05-06','%Y%m')
>                            ) / 12
>               ) AS Alter_in_J;
>
> Diese letzten beiden Versionen sind in meinen Augen die besten.
>
> Ciao,
>   Martin
> --
> Martin Ramsch <m.ramsch_(at)_computer.org> <URL:
> http://home.pages.de/~ramsch/ >
> PGP KeyID=0xE8EF4F75 FiPr=52 44
> 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7
>
> ---
> *** Abmelden von dieser Mailingliste funktioniert per E-Mail
> *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
>
>

---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive