![]() |
Alter berechnen als Dezimalzahl mit SQL
Hallo zusammen,
wie berechne ich über SQL das Alter in einer Dezimalzahl. Ein Beispiel : Geburtsdatum : 29.08.1976 Ergebnis Alter : 35,64 Wie bekomme ich das in einem SQL-Befehl hin unter MySQL-Version: 5.1.61 ? Mit diesem Befehl habe ich bis jetzt nur das volle Alter herausbekommen. Hier fehlen mir die Kommastellen.
Code:
SELECT FLOOR(PERIOD_DIFF(EXTRACT(YEAR_MONTH FROM NOW()), EXTRACT(YEAR_MONTH FROM BirthdayDate)) / 12)
|
AW: Alter berechnen als Dezimalzahl mit SQL
Hallo zusammen,
habe soeben das Problem selber lösen können. Lösung:
Code:
SELECT ROUND((UNIX_TIMESTAMP( NOW() )-UNIX_TIMESTAMP('1976-08-29 12:00:00'))/(60*60*24*365.2425), 2) as 'ALTER'
|
AW: Alter berechnen als Dezimalzahl mit SQL
Floor() rundet ja auch ab.
|
AW: Alter berechnen als Dezimalzahl mit SQL
Kann man nicht einfach CAST, CONVERT o.ä. verwenden?
|
AW: Alter berechnen als Dezimalzahl mit SQL
Wenn ich folgendes schreibe :
Code:
Dann hat er ein Problem mit dem "AS INTEGER". Das gleiche passiert auch beim Convert.
SELECT CAST(CURRENT_DATE() AS INTEGER);
Wenn man aber statt FLOOR de Befehl ROUND in den SQL-Befehl aus dem Beitrag #1 einsetzt, bekommt man das gleiche Ergebnis wie aus Beitrag #2. |
AW: Alter berechnen als Dezimalzahl mit SQL
Ich würde ja auch nach FLOAT casten. Ich weiss nicht, ob das Standard ist, aber i.a. wird das Datum intern als Fließkommazahl dargestellt, die die Anzahl der Tage seit einem bestimmten Datum (1.1.1900 z.B.) angibt. Der Nachkommaanteil gibt die Zeit an, wobei 0,5 Uhr Mittags ist.
Die Differenz ist dann das Alter in Tagen. |
AW: Alter berechnen als Dezimalzahl mit SQL
Und wenn es wirklich genau und somit aussagefähig sein soll, bräuchte man streng genommen auch noch mindestens die Geburtsstunde und könnte keinen festen Faktor zur Berücksichtigung der Schaltjahre verwenden, sondern müsste deren tatsächliche Anzahl im ermittelten Zeitraum bestimmen ;)
|
AW: Alter berechnen als Dezimalzahl mit SQL
Sowie den Geburtsort und den Ort, an dem die Frage nach dem Alter gestellt wird. :stupid:
|
AW: Alter berechnen als Dezimalzahl mit SQL
Und die Schuhgröße der Hebamme :mrgreen: (nun aber genug OT).
|
AW: Alter berechnen als Dezimalzahl mit SQL
Das Thema hatten wir
![]() Edit: Mit 365.2425 wird es nicht immer das richtige Ergebnis liefern. Edit2: In MySQL gibt es doch DATEDIFF?
SQL-Code:
SELECT FLOOR(DATEDIFF(now(), geburtstag) / 365)
Edit3: Ups, ich hatte folgendes überlesen... Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz