创建功能以计算特定日期的人员年龄

此函数将使用 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())