Das Alter einer Person

By Frank Kalis

Posted on Jul 13, 2004 von in SQL Server

In Ergänzung zu diesem Beitrag kann man auch folgende Alternativen zur Bestimmung des Alters einer Person verwenden:

DECLARE @geburtstag DATETIME
SET @geburtstag = '23.07.1968'

Alternative 1:

 SELECT 
 DATEDIFF(yy, @geburtstag, GETDATE()) -
  CASE 
   WHEN (MONTH(GETDATE()) * 100 + DAY(GETDATE())) <
    (MONTH(@geburtstag)* 100 + DAY(@geburtstag))
   THEN 1 
   ELSE 0 
  END
            
----------- 
35

(1 row(s) affected)

Alternative 2:

SELECT 
 (CAST(CONVERT(CHAR(8),GETDATE(), 112) AS INT)
 - 
 CAST(CONVERT(CHAR(8), @geburtstag, 112) AS INT))/10000
            
----------- 
35

(1 row(s) affected)

Alternative 3:

SELECT 
 YEAR(GETDATE()) - YEAR(@geburtstag) -
 (CASE 
  WHEN (MONTH(@geburtstag) > MONTH(GETDATE()))
   OR (MONTH(@geburtstag) = MONTH(GETDATE())
   AND DAY(@geburtstag) > DAY(GETDATE()))
  THEN 1
  ELSE 0 END)
            
----------- 
35

(1 row(s) affected)

Alternative 4:

SELECT 
 (0+CONVERT(CHAR(8),CURRENT_TIMESTAMP, 112)
 - 
 CONVERT(CHAR(8), @geburtstag, 112))/10000
            
----------- 
35

(1 row(s) affected)

Ich würde aber diese Methode vorziehen, da ich ihr eine bessere Performance zutraue.

Dieser Eintrag wurde eingetragen von und ist abgelegt unter SQL Server. Tags: , ,

Noch kein Feedback


Formular wird geladen...