![]() |
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:
|
AW: Alter berechnen als Dezimalzahl mit SQL
Es gibt auch noch die Funktion
![]() |
AW: Alter berechnen als Dezimalzahl mit SQL
Zitat:
Zitat:
Ich glaube, das mit den Nachkommastellen geht, in dem man nach dem verlinkten Algorithmus das Alter in ganzen Jahren und dann einfach die Anzahl der Tage zwischen dem letzten Geburtstag und Heute nimmt und ins Verhältnis zu 365 bzw. 365.25 (Schaltjahr des Zieldatums) setzt. |
AW: Alter berechnen als Dezimalzahl mit SQL
@Iwo Asnet: Schau dir bitte meinen Link an und lese Edit3 in meinem letzten Post.
|
AW: Alter berechnen als Dezimalzahl mit SQL
Zitat:
Zitat:
:stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 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