Heim > Datenbank > MySQL-Tutorial > Wie berechnet man das Alter in SQL Server anhand des Geburtsdatums genau?

Wie berechnet man das Alter in SQL Server anhand des Geburtsdatums genau?

Barbara Streisand
Freigeben: 2025-01-22 13:26:09
Original
458 Leute haben es durchsucht

How to Accurately Calculate Age in SQL Server Using Date of Birth?

Präzise Altersberechnung in SQL Server anhand des Geburtsdatums

SQL Server bietet effiziente Methoden zur Berechnung des Alters aus einem Geburtsdatum. Die Funktion CAST() konvertiert Geburtsdatumszeichenfolgen problemlos in den Datentyp DATE/DATETIME und ermöglicht so verschiedene Datumsberechnungen, einschließlich Altersbestimmung.

Betrachten Sie diese Beispieldaten:

ID Name DOB
1 John 1992-01-09 00:00:00
2 Sally 1959-05-20 00:00:00

Altersberechnung mit DATEDIFF()

Die Funktion DATEDIFF() berechnet die Differenz zwischen zwei Datumsangaben. Durch die Kombination mit GETDATE() (das das aktuelle Datum und die aktuelle Uhrzeit angibt) können wir das Alter in verschiedenen Einheiten bestimmen:

<code class="language-sql">SELECT ID, Name, DATEDIFF(hour, DOB, GETDATE()) AS AgeInHours,
       CONVERT(int, ROUND(DATEDIFF(day, DOB, GETDATE()) / 365.25, 0)) AS AgeYearsApprox
FROM table_name;</code>
Nach dem Login kopieren

Dies ergibt das ungefähre Alter in Jahren und entspricht der durchschnittlichen Anzahl der Tage in einem Jahr (365,25). Für genaue Ergebnisse ist eine präzisere Methode erforderlich.

Erweiterte Methoden zur Altersberechnung

Für eine höhere Genauigkeit, insbesondere bei der Berücksichtigung von Schaltjahren, werden ausgefeiltere Ansätze empfohlen.

Ganzzahliges Alter:

Diese Methode liefert das Alter in ganzen Jahren:

<code class="language-sql">SELECT ID, Name,
       (YEAR(GETDATE()) - YEAR(DOB)) - CASE WHEN MONTH(GETDATE()) < MONTH(DOB) OR (MONTH(GETDATE()) = MONTH(DOB) AND DAY(GETDATE()) < DAY(DOB)) THEN 1 ELSE 0 END AS AgeYearsInt
FROM table_name;</code>
Nach dem Login kopieren

Dezimalalter (genauer):

Diese Berechnung bietet ein genaueres Alter, einschließlich gebrochener Jahre:

<code class="language-sql">SELECT ID, Name,
       DATEDIFF(year, DOB, GETDATE()) +
       CASE
           WHEN DATEADD(year, DATEDIFF(year, DOB, GETDATE()), DOB) > GETDATE() THEN -1
           ELSE 0
       END AS AgeYearsDecimal
FROM table_name;</code>
Nach dem Login kopieren

Diese verbesserten Methoden ermöglichen genauere Altersberechnungen und berücksichtigen die Komplexität von Schaltjahren und Tagesunterschieden für zuverlässigere Ergebnisse. Wählen Sie die Methode, die Ihren Präzisionsanforderungen am besten entspricht.

Das obige ist der detaillierte Inhalt vonWie berechnet man das Alter in SQL Server anhand des Geburtsdatums genau?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage