AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Alter berechnen als Dezimalzahl mit SQL

Alter berechnen als Dezimalzahl mit SQL

Ein Thema von RWarnecke · begonnen am 21. Apr 2012 · letzter Beitrag vom 22. Apr 2012
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

AW: Alter berechnen als Dezimalzahl mit SQL

  Alt 22. Apr 2012, 07:35
Wenn ich folgendes schreibe :
Code:
SELECT CAST(CURRENT_DATE() AS INTEGER);
Dann hat er ein Problem mit dem "AS INTEGER". Das gleiche passiert auch beim Convert.

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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#2

AW: Alter berechnen als Dezimalzahl mit SQL

  Alt 22. Apr 2012, 09:50
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.

Geändert von Iwo Asnet (22. Apr 2012 um 10:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.661 Beiträge
 
Delphi 12 Athens
 
#3

AW: Alter berechnen als Dezimalzahl mit SQL

  Alt 22. Apr 2012, 09:55
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
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#4

AW: Alter berechnen als Dezimalzahl mit SQL

  Alt 22. Apr 2012, 10:06
Sowie den Geburtsort und den Ort, an dem die Frage nach dem Alter gestellt wird.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.661 Beiträge
 
Delphi 12 Athens
 
#5

AW: Alter berechnen als Dezimalzahl mit SQL

  Alt 22. Apr 2012, 10:16
Und die Schuhgröße der Hebamme (nun aber genug OT).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Alter berechnen als Dezimalzahl mit SQL

  Alt 22. Apr 2012, 11:00
Das Thema hatten wir hier ja schonmal.

Edit: Mit 365.2425 wird es nicht immer das richtige Ergebnis liefern.

Edit2: In MySQL gibt es doch DATEDIFF?
SELECT FLOOR(DATEDIFF(now(), geburtstag) / 365)

Edit3:
Ups, ich hatte folgendes überlesen...
Hier fehlen mir die Kommastellen.
Also einfach überlesen, was ich geschrieben haben. Sorry

Geändert von omata (22. Apr 2012 um 11:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Alter berechnen als Dezimalzahl mit SQL

  Alt 22. Apr 2012, 11:32
Es gibt auch noch die Funktion Bei Google suchenTIMESTAMPDIFF, die würde ich hierfür hernehmen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#8

AW: Alter berechnen als Dezimalzahl mit SQL

  Alt 22. Apr 2012, 11:38
Und die Schuhgröße der Hebamme (nun aber genug OT).
Genau genommen müssten wir die jeweilige Ortszeit berücksichtigen, und deshalb Geburtsort und Ort des Fragestellers. Die Schuhgröße der Hebamme ist dann interessant, aber nicht zielführend.
Mit 365.2425 wird es nicht immer das richtige Ergebnis liefern.
SELECT FLOOR(DATEDIFF(now(), geburtstag) / 365)
Wie gehst Du mit Schaltjahren um? Der Quotient 365,2425 versucht es wenigstens.

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.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Alter berechnen als Dezimalzahl mit SQL

  Alt 22. Apr 2012, 11:50
@Iwo Asnet: Schau dir bitte meinen Link an und lese Edit3 in meinem letzten Post.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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-2025 by Thomas Breitkreuz