MySQL根据出生日期查询年龄,以及对年龄进行分组统计

这篇具有很好参考价值的文章主要介绍了MySQL根据出生日期查询年龄,以及对年龄进行分组统计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

表stu数据如下

mysql根据出生日期计算年龄,mysql,数据库

1. 根据出生日期查询年龄

SELECT TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE())  AS age FROM stu;

返回结果:mysql根据出生日期计算年龄,mysql,数据库

函数DATE():提取日期或日期/时间表达式的日期部分;

函数CURDATE():返回当前的日期;

函数TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2):计算两个日期的时间差,unit是计算时间差的单位,可以是SECOND秒、MINUTE分钟、HOUR小时、DAY天、WEEK星期、MONTH月、QUARTER季度、YEAR年。
 

2.对年龄进行分组统计

1)case 结构

SELECT
	年龄段,count(*) 人数
FROM
	(
	SELECT
	CASE		
		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
(
	SELECT
	IF(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根据出生日期计算年龄,mysql,数据库

 文章来源地址https://www.toymoban.com/news/detail-515789.html

到了这里,关于MySQL根据出生日期查询年龄,以及对年龄进行分组统计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql查询一周内的数据(起始日期为星期一)、根据一周不同星期进行分组统计

    其中YEARWEEK ( time, 1) 获取的是时间的年以及是该年内的第几周,而其中的1则代表以星期一为一周的第一天。 不加1的情况就是,获取的数据是以星期日为一周的第一天的,与我们的需求不符。 直接在YEARWEEK ( now(), 1) 加上-1即是减一周,也就是上周。 数字1则代表星期一,2代表

    2024年02月13日
    浏览(49)
  • 数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)

    问题 根据身份证号统计年龄(18位) Oracle 思路 (1)Substr()函数在Oracle使用中表示被劫取的字符串表达式,截取字符串的内容。 (2)To_date()函数可以转换不同格式的日期,通过使用to_date函数可以将字符串类型的日期转换成date格式。 (3)Months_between()函数反悔两个日期之间的

    2024年02月11日
    浏览(50)
  • SQL由出生日期求年龄

    我们现在有一个学生关系表 通过语句: date_part(\\\'years\\\',age(生日))就可以求出年龄   解析: age(timestamp) 从现在时间 current_date() 减去参数(时间戳),结果返回类型为Intrval(xxyears xxmos xx days) data_part(field TEXT, source TIMESTAMP/DATE/TIME/INTERVAL) 从时间戳或时间间隔中提取特点部分并返回

    2024年02月05日
    浏览(44)
  • MYSQL之查询按日期分组统计

    1.1、dayofyear、dayofmonth、dayofweek dayofyear(date) 函数返回日期位于所在年份的第几天,范围是1 ~ 366 dayofmonth(date) 函数返回日期位于所在月份的第几天,范围是1 ~ 31 dayofweek(date) 函数返回日期位于所在周的第几天,范围是1 ~ 7 查询语句 查询结果    需要注意的是,如果是 dayofmon

    2024年02月02日
    浏览(42)
  • MySQL如何查询根据某一条件分组,再查询出每组数据中时间最早或最晚的数据

    最近遇到个需求,需要先根据A条件进行分组,然后查询出每组数据中时间最近的一条数据,立马就写出了sql语句 但是执行了一下,发现不对,子查询中 order by 貌似失效了,查出来的数据并不是要想要的时间最近的数据。 经过我的研究,发现,想要子查询中使用order by生效,

    2024年03月09日
    浏览(49)
  • 六、MySQL---综合练习题(单表、多表、分组函数以及等级查询)

    数据库:dept_emp 1. dept表 :deptno’部门编号’、dname’部门名称’、loc’地理位置’; 2. emp表 :empno ‘员工编号’、ename ‘员工名字’、job ‘职位’、mgr ‘上司’、hiredate ‘入职时间’、sal ‘基本工资’,comm ‘补贴’,deptno ‘所属部门编号’; 3. salgrade :grade ‘工资等级’

    2024年01月21日
    浏览(50)
  • 【MySQL】根据多个字段查询数据进行去重的sql编写

    一、实现思路 根据四个字段进行数据去重的SQL编写可以使用GROUP BY和HAVING子句来实现。 场景一: 假设有一个名为 table1 的数据表,其中包含四个字段: field1 、 field2 、 field3 和 field4 。要求根据这四个字段进行数据去重。 可以使用以下SQL语句: 场景二: 上述SQL语句会返回所

    2024年02月15日
    浏览(56)
  • MySQL 时间日期函数,流程控制函数,加密解密函数以及聚合查询函数

    注:本文仅作为查找函数和部分理解使用,希望能给大家带来帮助 以下函数均可以使用 重点记忆前三个红色标注的函数, 第一个函数返回值如2024-01-02的形式 第二个如 15:20:21 第三个则是两者追加 如: 2024-01-02 15:20:21 注:注意 DAYOFWEEK 和 WEEKDAY 的区别   相当于取date的某个单独的字

    2024年01月23日
    浏览(51)
  • java根据分组函数GroupingBy进行多个条件组合分组

    在SQL中经常会用到分组,我们也常常遇到一些组合分组的场景。 java8分组 传统写法(单个字段分组) 场景:根据 城市 进行分组 使用的是方法引用:User::getCity 来完成分组 java8分组 传统写法(多个字段分组) 场景:根据 城市,性别进行分组 一般的写法会是下面的这种写法,

    2023年04月19日
    浏览(43)
  • ES根据日期查询数据

    1 实体类写入ES 在写入ES库的时候,日期格式需要转换成ES可以识别的日期格式: 然后写入ES库即可 一般是根据时间区间查询,所以如果有空字段可以设置一个默认值方便查询  2 查询ES数据的时候 ES的一些搜索规则: 参考: JAVA代码实现ElasticSearch搜索(入门-进阶)(一):搜索方

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包