MySQL根据出生日期查询年龄,以及对年龄进行分组统计
生活随笔
收集整理的這篇文章主要介紹了
MySQL根据出生日期查询年龄,以及对年龄进行分组统计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
表stu數據如下
1. 根據出生日期查詢年齡
SELECT TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE()) AS age FROM stu;返回結果:
函數DATE():提取日期或日期/時間表達式的日期部分;
函數CURDATE():返回當前的日期;
函數TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2):計算兩個日期的時間差,unit是計算時間差的單位,可以是SECOND秒、MINUTE分鐘、HOUR小時、DAY天、WEEK星期、MONTH月、QUARTER季度、YEAR年。
?
2.對年齡進行分組統計
1)case 結構
SELECT年齡段,count(*) 人數 FROM(SELECTCASE WHEN TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE())<20 THEN '20歲以下' WHEN TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE()) >= 20 AND TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE()) <= 22 THEN '20-22歲' WHEN TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE()) >= 23 AND TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE()) <= 25 THEN '23-25歲' WHEN TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE())>25 THEN '25歲以上' else '未知'END AS 年齡段FROM stu ) AS a GROUP BY 年齡段;2)if結構
SELECT年齡段,count(*) 人數 FROM (SELECTIF(TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE())<20,'20歲以下',IF(TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE())>= 20 AND TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE()) <= 22,'20-22歲',IF(TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE())>= 23 AND TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE()) <= 25,'23-25歲',IF(TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE())>25,'25歲以上','未知'))))AS 年齡段FROM stu )AS a GROUP BY 年齡段;返回結果:
?
總結
以上是生活随笔為你收集整理的MySQL根据出生日期查询年龄,以及对年龄进行分组统计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 商务参考体系结构:企业对消费者 (B2C
- 下一篇: 现代化 Android Pie: 安全与