建立功能以計算特定日期的人員年齡

此函式將使用 2 個日期時間引數,DOB 和用於檢查年齡的日期

  CREATE FUNCTION [dbo].[Calc_Age]
    (
    @DOB datetime , @calcDate datetime 
    )
    RETURNS int
    AS
   BEGIN
declare @age int

IF (@calcDate < @DOB  )
RETURN -1

-- If a DOB is supplied after the comparison date, then return -1
SELECT @age = YEAR(@calcDate) - YEAR(@DOB) +
  CASE WHEN DATEADD(year,YEAR(@calcDate) - YEAR(@DOB)
  ,@DOB) > @calcDate THEN -1 ELSE 0 END
    

RETURN @age
    

END

例如,檢查今天在 2000 年 1 月 1 日出生的人的年齡

SELECT  dbo.Calc_Age('2000-01-01',Getdate())