1.创建一个计算年龄的函数
具体计算逻辑是,先年份相减,然后比较月份跟日期,如果当前月份日期小于出生的月份日期,则年龄-1
create function [dbo].[fun_getAge]
(
@agedate date,
@curdate date
)
returns int
begin
return datediff(YYYY,@agedate,@curdate) + (case when (month(@agedate)*100) + day(@agedate) > (month(@curdate)*100) + day(@curdate) then -1 else 0 end);
end
2.函数调用示例
select dbo.fun_getAge('1992-05-24','2019-05-24'); --返回年龄27
select dbo.fun_getAge('1992-05-25','2019-05-24'); --返回年龄26