AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Das Alter in Jahre, Monate und Tage ausgeben
Thema durchsuchen
Ansicht
Themen-Optionen

Das Alter in Jahre, Monate und Tage ausgeben

Ein Thema von Kostas · begonnen am 20. Aug 2024 · letzter Beitrag vom 25. Aug 2024
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Das Alter in Jahre, Monate und Tage ausgeben

  Alt 20. Aug 2024, 21:57
Datenbank: Firebird • Version: 3.0 • Zugriff über: FireDac
Halo Zusammen,

gibt es eine Möglichkeit in einer Firebird StoredProc das Alter in Jahre, Monate und Tage einer Person auszugeben?

In Excel gibt es einen Parameter bei DateDif "ym" "gibt die Anzahl der verbleibenden Monate nach dem letzten vollen Jahr zurück"
https://support.microsoft.com/de-de/...5-46100a162f38
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Das Alter in Jahre, Monate und Tage ausgeben

  Alt 20. Aug 2024, 23:14
Eigentlich: die Differenz als INTERVAL und dort steht dann alles genau drin.
Und falls nötig kann man dort anschließend die Tage/Monate/Jahre einzeln rausholen.



Bei Google suchenfirebird datediff

Falls das datediff der des DBMS nur einen Integer liefert,
die Differenz einfach in Monaten.
diff div 12 = Jahre
diff mod 12 = Monate
Rest = Tage

Wenn diff Nachkommastellen hat, dann sind das die "Tage" des letzten Monats
oder z.B.
StartDatum mit dateadd(Jahre und Monate) ... und dann datediff(für Days) zum EndDatum
$2B or not $2B

Geändert von himitsu (20. Aug 2024 um 23:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
679 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Das Alter in Jahre, Monate und Tage ausgeben

  Alt 21. Aug 2024, 07:02
Code:
select
datediff(year,cast('14.8.1966' as date),current_date) jahre,
datediff(month,cast('14.8.1966' as date),current_date) monate,
datediff(day, cast('14.8.1966' as date),current_date) tage
from rdb$database

JAHRE   MONATE   TAGE
58   696   21192
falls monate und tage aber nur anteilig gebraucht werden, musst du mit dateadd vom aktuellen geburtsdatum
noch weiter rechnen, ist aber alles mit internen funktionen machbar (hb da ein anderes datum genommen, damit das ergebnis auch was zeigt)

Code:
select
datediff(year,cast('2.1.1966' as date),current_date) jahre,
datediff(month,cast('2.1.'||extract(year from current_date) as date),current_date) monate,
datediff(day, dateadd(month,datediff(month,cast('2.1.'||extract(year from current_date) as date),current_date),cast('2.1.'||extract(year from current_date) as date) ),current_date) tage
from rdb$database

JAHRE   MONATE   TAGE
58   7   19
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung

Geändert von IBExpert (21. Aug 2024 um 07:24 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Das Alter in Jahre, Monate und Tage ausgeben

  Alt 21. Aug 2024, 08:19
datediff(month,cast('2.1.'||extract(year from current_date) as date),current_date) monate,

Funktioniert das denn auch, wenn der Geburtstag dieses Jahr noch nicht gewesen ist, also z.B. mit 2.11.?
Ralph
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Das Alter in Jahre, Monate und Tage ausgeben

  Alt 25. Aug 2024, 16:47
Ich habe hier eine Stored Function gefunden die genau das macht was ich brauche.

https://dba.stackexchange.com/questi...ars-months-and
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz