如何用SQL语句把出生日期计算年龄,比如是1984-2-16怎么算出年龄啊

2020-05-22 社会 118阅读

计算年龄就是,计算当前时间与出生日期的年份差的过程,所以用到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,就计算月份差,显示月份为年龄。

语句结果如图:

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com