计算年龄就是,计算当前时间与出生日期的年份差的过程,所以用到DATEDIFF 函数。
一、DATEDIFF 函数简介
1、函数功能:返回两个日期之间的间隔指定单位值。
2、语法:DATEDIFF ( date-part, date-expression-1, date-expression-2 )
date-part :指定要测量其间隔的日期部分,常用参数说明
date-expression-1 某一间隔的起始日期。
date-expression-2 某一间隔的结束日期。
函数返回值:从date-expression-2 值中减去 Date-expression-1,返回两个参数之间 date-parts 的值。
3、范例演示:
SELECT datediff( hh, '4:00AM', '5:50AM' )下面的语句返回 102:
SELECT datediff( mm, '1987/05/02', '1995/11/15' )下面的语句返回 0:
SELECT datediff( dd, '00:00', '23:59' )下面的语句返回 4:
SELECT datediff( dd,'1999/07/19 00:00','1999/07/23 23:59' )下面的语句返回 0:
SELECT datediff( mm, '1999/07/19', '1999/07/23' )下面的语句返回 1:
SELECT datediff( mm, '1999/07/19', '1999/08/23' )
二、通过出生日期计算年龄的实例
1、实例表格:a_test
2、SQL语句如下:
select bh,rq,
case when datediff(yy,rq,getdate()) = 0
then cast(datediff(mm,rq,getdate()) as char(3)) +'个月'
else cast(datediff(yy,rq,getdate()) as char(3)) +'岁'
end as '年龄'
from a_test;
语句解析:语句主体部分
case when datediff(yy,rq,getdate()) = 0
then cast(datediff(mm,rq,getdate()) as char(3)) +'个月'
else cast(datediff(yy,rq,getdate()) as char(3)) +'岁'
end as '年龄'
datediff函数计算出生日期rq与系统当前时间getdate()的年份差值,如果差值大于0,就计算月份差,显示月份为年龄。
语句结果如图: