Alter und Geburtsdatum
Sarah
- datenbank
Hallöle,
wie kann ich eigentlich von der DB (mySQL) von der Spalte Geburtstag im Format (date=1950-12-31) das Alter in Jahren auslesen?
Habe leider nirgends etwas gefunden?
Wir würde das Select aussehen??
Oder sollte ich eine Spalte "Alter" anlegen und jeden Abend per crontab das Alter berechnen mit:
(YEAR(CURDATE())-YEAR(Geburtstag)) - (RIGHT(CURDATE(),5)<RIGHT(Geburtstag,5))
Was wäre von der Perfomance her besser?
Grüßchen
Moin Moin!
Berechne das Alter während der Abfrage.
SELECT now()-geburtstag as alter from tabelle
oder ähnliches, das ist je nach DB etwas unterschiedlich. Das Handbuch zur DB sollte da weiterhelfen.
Alexander
Also während der Abfrage wäre die Berechnung besser.
Wenn man das Geburtsdatum von now() einfach abziehen kann, wäre das sehr easy. Ich probiere es mal aus.
Grüßchen
Wenn man das Geburtsdatum von now() einfach abziehen kann, wäre das sehr easy. Ich probiere es mal aus.
Leider nicht geklappt :(
Moin!
Wenn man das Geburtsdatum von now() einfach abziehen kann, wäre das sehr easy. Ich probiere es mal aus.
Leider nicht geklappt :(
Benutze die Datumsrechenfunktionen. MySQL hat da ein reichhaltiges Angebot, auch zum Subtrahieren ist was dabei.
- Sven Rautenberg
Hallo!
Wenn man das Geburtsdatum von now() einfach abziehen kann, wäre das sehr easy. Ich probiere es mal aus.
Leider nicht geklappt :(
Nicht geklappt ist welche Fehlermeldung?
Ein Now()-DATESPALTE müsste eigentlich funktionieren. Ist Geburtstag auch als Datumsformat definiert?
Ansonsten hat Sven eh schon auf die Date and Time Functions von MySQL hingewiesen.
mfg
frafu
Danke Sven und Danke FraFu,
Nicht geklappt ist welche Fehlermeldung?
Ein Now()-DATESPALTE müsste eigentlich funktionieren. Ist Geburtstag auch als Datumsformat definiert?
Ansonsten hat Sven eh schon auf die Date and Time Functions von MySQL hingewiesen.
Habe now()-Geburtsdatum gemacht und erhalte solch ein Wert zurück:
20080187333156
Habe versucht dann zu formatieren mit:
date_format(now()-Geburtsdatum,"%Y"). Kriege aber NULL zurück.
Grüßchen
Sorry, ich könnte ja das vom Cronjob nehmen:
select(YEAR(CURDATE())-YEAR(Geburtsdatum)) - (RIGHT(CURDATE(),5)<RIGHT(Geburtsdatum,5)) AS age, name, id from ....
Grüße
Hallo Sarah,
wie kann ich eigentlich von der DB (mySQL) von der Spalte Geburtstag im Format (date=1950-12-31) das Alter in Jahren auslesen?
Die einfachste Form wäre sowas: »YEAR(NOW())-YEAR(geburtsdatum)
«, die genauere Variante findest du unter http://www.to-kl.de/scripte/mysql-schnipsel.html.
Grüße aus Nürnberg
Tobias