Mit MySQL das Alter berechnen – Teil 1

September 21st, 2007 20:36 Uhr von Ronald

Mit MySQL kann man bekanntlich die tollsten Sachen erledigen (lassen) und so kann man auch mit einem kleinen SQL-Befehls-Konglomerat das Alter (einer Person) berechnen lassen.

Dazu benötigt man die folgenden Funktionen:

FLOOR()

Rundet den übergebenen numerischen Wert, z.B. einen Float, auf den nächst niedrigen Integer Wert ab.

PERIOD_DIFF()

Gibt die Monate zwischen zwei Datumseingaben zurück. Übergeben werden dürfen nur Kombinationen aus Jahr und Monat. D.h. JJMM und JJJJMM.

EXTRACT()

Die Funktion extrahiert Teile eines Date(Time)-Typs, z.B. Tag und Monat von 1982-12-24.

Nun kommt der eigentliche Teil, nämlich das Kombinieren zu einer Funktion.

SELECT FLOOR(PERIOD_DIFF(EXTRACT(YEAR_MONTH FROM NOW()), EXTRACT(YEAR_MONTH FROM ‘1982-12-24′)) / 12);

Die Funktion liest also mit EXTRACT() den aktuellen Monat und den aktuellen Tag aus, extrahiert außerdem vom gegebenem Datum das selbe. Anschließend berechnet sie mit PERIOD_DIFF() die Differenz der beiden Daten und teilt alles durch 12 Monate. Anschließend wird noch mit FLOOR() auf den nächsten Integer-Wert abgerundet. Wer’s ein bisschen genauer mag, dem empfehle ich die oben verlinkten Seiten der MySQL-Dokumentation. Viel Spaß! :-)

Morgen präsentiere ich dann den 2. Teil und dabei wird’s auch mal wieder mystisch. Es kann nämlich zu merkwürdigen Problemen kommen… :-)

Teile und genieße Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • Digg
  • del.icio.us
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists

Geschrieben in MySQL | Keine Kommentare »

Einen Kommentar abgeben

Bitte beachte: Die Kommentare werden moderiert. Dies kann zu Verzögerungen bei Deinem Kommentar führen. Es besteht kein Grund den Kommentar erneut abzuschicken.

*
To prove you're a person (not a spam script), type the answer to the math equation shown in the picture. Click on the picture to hear an audio file of the equation.
Click to hear an audio file of the anti-spam equation