SQL 只有出生日期 如何统计出相同年龄人数

如题所述

例:表 tab1 ,出生日期字段为 rq,sql语句如下

select a.age,count(*) from 
(select year(getdate()) - year(rq) as "age" from tab1) a 
group by a.age;

关键语句:select year(getdate()) - year(rq) as "age" from tab1

year函数获取系统日期与出生日期的年份,将年份相减即年龄,当然也可以根据需求,取出月份,进行运算,获得更精确的周岁。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-12
利用SQL查询年龄大于30的雇员的姓名、年龄(表里只有出生日期) select name, datediff(year,birthday,getdate()) as age from table where datediff(
第2个回答  2011-06-12
select DATEPART(year, birthday), count(*)
from table
group by DATEPART(year, birthday)

DATEPART()函数是取时间中特定部分的函数
第3个回答  2011-06-12
SELECT datediff(year,birth_date,getdate()) ages,count(*) count_num from employee
group by datediff(year,birth_date,getdate())
第4个回答  2011-06-12
倒 出生日期一样 年龄不就一样了

select count(*) ,birthday from table group by birthday追问

给的是具体的年月日,我只要年龄啊,怎么排除啊

追答

那就加 where 子句了 计算年龄那就年份相减了

追问

不好意思给个完整的吧,我们这是选修课,才上六周,实在白痴

追答

select datepart(YYYY,getdate())-datepart(YYYY,birthday) as age, count(*)
from table
where birthday >='1992-08-27 00:00:00.000'
group by datepart(YYYY,getdate())-datepart(YYYY,birthday)

本回答被提问者采纳
相似回答