网络编程
位置:首页>> 网络编程>> 数据库>> Mysql出生日期转换为年龄并分组统计人数的方法示例

Mysql出生日期转换为年龄并分组统计人数的方法示例

作者:a little rookie  发布时间:2024-01-14 14:58:03 

标签:mysql,出生日期,年龄

查询数据库


SELECT * FROM `student`

查询结果

idnamebirthday
1张三1970-10-01
2李四1990-10-01
3王五2002-10-01
4马六2003-10-01

转换为年龄的查询语句,使用函数TIMESTAMPDIFF


SELECT id, name, birthday, TIMESTAMPDIFF(YEAR,student.birthday,CURDATE()) as age FROM `student`

查询结果

dnamebirthadyage
1张三1970-10-0150
2李四1990-10-0130
3王五2002-10-0118
4马六2003-10-0117

然后按照年龄段进行分组


SELECT
GROUP_CONCAT(a.id) as ids,
GROUP_CONCAT(a.name) as names,
CASE
WHEN a.age<18 THEN '少年'
WHEN a.age>=18 AND a.age< 40 THEN '青年'
WHEN a.age>=40 AND a.age< 60 THEN '中年'
END as age,
count(a.id) as count
FROM
(SELECT id, name, birthday, TIMESTAMPDIFF(YEAR,student.birthday,CURDATE()) as age FROM `student`) as a
GROUP BY
CASE
WHEN a.age<18 THEN '少年'
WHEN a.age>=18 AND a.age< 40 THEN '青年'
WHEN a.age>=40 AND a.age< 60 THEN '中年'
END

查询结果

idsnamesagecount
1张三中年1
4马六少年1
2,3李四,王五青年2

tips:当前时间是2020年

来源:https://blog.csdn.net/weixin_45121502/article/details/109486301

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com