Rubrik: Datenbanken · ADO.NET Allgemein | VB-Versionen: VB2005, VB2008, VB2010 | 27.03.12 |
SQL: Berechnen des Alters einer Person in der SELECT-Anweisung Der Tipp zeigt die Term-Konstruktion für die Berechnung des Alters bei gegebenem Geburtstag. | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 8.370 |
ohne Homepage | System: WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Bei der Anwendung des Tipps wird das Alter berechnet ohne Rücksicht auf Schaltjahre und auch unter Beachtung, ob der Geburtstag im aktuellen Jahr schon gefeiert wurde.
Dim sSQL As String = "SELECT Geburtstag, " & _ "CASE WHEN DATEPART(month, Geburtstag) = DATEPART(month, GETDATE()) THEN " & _ "CASE WHEN DATEPART(day, Geburtstag) <= DATEPART(day, GETDATE()) THEN " & _ "DATEDIFF(month, Geburtstag, GETDATE()) / 12 " & _ "ELSE DATEDIFF(month, Geburtstag, GETDATE()) / 12 - 1 END " & _ "ELSE DATEDIFF(month, Geburtstag, GETDATE()) / 12 END AS Age FROM myTabelle"
Anmerkung:
Die Methode zur Altersberechnung stammt aus nachfolgendem Tipp:
Exaktes Alter berechnen (.NET)