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

查询数据库

SELECT * FROM `student`

查询结果

id name birthday
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`

查询结果

d name birthady age
1 张三 1970-10-01 50
2 李四 1990-10-01 30
3 王五 2002-10-01 18
4 马六 2003-10-01 17

然后按照年龄段进行分组

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

查询结果

ids names age count
1 张三 中年 1
4 马六 少年 1
2,3 李四,王五 青年 2

tips:当前时间是2020年

总结

到此这篇关于Mysql出生日期转换为年龄并分组统计人数的文章就介绍到这了,更多相关Mysql出生日期转年龄并分组统计内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySql用DATE_FORMAT截取DateTime字段的日期值

    用 DATE_FORMAT 来格式化日期字段 SELECT DATE_FORMAT(crt_time,'%Y-%m-%d') FROM ad_n_advertise_t

  • MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) SELECT DAYOFWEEK('2016-01-16') SELECT DAYOFWEEK('2016-01-16 00:00:00') -> 7 (表示,记住:星期天=1,星期一=2, ... 星期六=7) 2.WEEKDAY(date) SELECT WEEKDAY('2016-01-16') SELECT WEEKDAY('2016-01

  • Mysql中通过生日计算年龄的多种方法

    以前使用mysql不是很多,对mysql的函数也不是很熟悉,遇到这个问题第一时间百度搜索,搜索到这两种方法,这两种方法是排在百度第一条的博客. 方法一 SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age 方法一,作者也说出了缺陷,就是当日期为未来日期时结果为0,而不是负数:这里使用了5个函数和两个运算符. 方法二 SELECT DATE_FORMAT(NOW(), '%Y') - DATE_

  • mysql 日期和时间格式转换实现语句

    这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30; DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, --7=星期六).这些索引值对应于ODBC标准. mysql> select DAYOFWEEK('1998-02-03'); ->

  • 详解mysql 获取当前日期及格式化

    MySQL 获取当前日期及日期格式 获取系统日期: NOW() 格式化日期: DATE_FORMAT(date, format) 注: date:时间字段 format:日期格式 返回系统日期,输出 2009-12-25 14:38:59 select now(); 输出 09-12-25 select date_format(now(),'%y-%m-%d'); 根据format字符串格式化date值: %S, %s 两位数字形式的秒( 00,01, ..., 59) %I, %i 两位数字形

  • MySQL日期数据类型、时间类型使用总结

    MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间       日期格式                 日期范围 ------------ ---------   --------------------- ----------------------------------------- datetime       8 bytes   YYYY-MM-DD HH:MM:SS   1000-01-01 00:00:00 ~ 9999-12-31

  • 详解Mysql中日期比较大小的方法

    假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 select * from product where add_time = '2013-01-12' 对于这种语句,如果你存储的格式是YY-mm-dd是这样的,那么OK,如果你存储的格式是:2013-01-12 23:23:56这种格式你就悲剧了,这是你就可以使用DATE()函数用来返回日期的部分,所以这条sql应该如下处理: 代码如下 select * from produc

  • MySql日期查询语句详解

    使用DATE_FORMAT方法SELECT * FROM `ler_items` WHERE DATE_FORMAT(postTime,'%Y-%m')='2013-03'注意:日期一定要用'',否则没有效果其它的一些关于mysql日期查找语句mysql> select date_format(DATE_SUB(CURDATE(), INTERVAL 7 DAY),'%y%m%d');+-------------------–+| date_format(DATE_SUB(CURDATE(),

  • Mysql 日期时间 DATE_FORMAT(date,format)

    本文转自:http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#function_date-format DATE_FORMAT(date,format) Formats the date value according to the format string. The following specifiers may be used in the format string. As of MySQL 3.23,

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

    查询数据库 SELECT * FROM `student` 查询结果 id name birthday 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` 查询结果 d na

  • MYSQL每隔10分钟进行分组统计的实现方法

    前言 本文的内容主要是介绍了MYSQL每隔10分钟进行分组统计的实现方法,在画用户登录.操作情况在一天内的分布图时会非常有用,之前我只知道用「存储过程」实现的方法(虽然执行速度快,但真的是太不灵活了),后来学会了用高级点的「group by」方法来灵活实现类似功能. 正文: -- time_str '2016-11-20 04:31:11' -- date_str 20161120 select concat(left(date_format(time_str, '%y-%m-%d %h:%i'

  • mysql实现按照某个时间段分组统计

    目录 mysql按照某个时间段分组统计 准备开始 mysql区间分组统计 场景 利用了mysql提供的interval和elt函数实现了效果 建中间表 通过函数来划分区间 mysql按照某个时间段分组统计 今天刚好是碰到一个报表需求,要求根据时段统计各工单的数量.这个就有点皮实了,以前都没搞过这玩意.于是研究了几下. 准备开始 首先一个问题,想根据时间段进行统计,这个问题先不考虑,先考虑,如果按照一小时统计呢,该怎么去做,于是就一顿操作,写出以下sql,这个基本的相信没什么难度,主要是说,怎么去

  • Oracle数据库按时间进行分组统计数据的方法

    Oracle按不同时间分组统计的sql 如下表table1: 日期(exportDate) 数量(amount) -------------- ----------- 14-2月 -08 20 10-3月 -08 2 14-4月 -08 6 14-6月 -08 75 24-10月-09 23 14-11月-09 45 04-8月 -10 5 04-9月 -10 44 04-10月-10 88 注意:为了显示更直观,如下查询已皆按相应分组排序 1.按年份分组 select to_char(expo

  • Java TreeSet实现学生按年龄大小和姓名排序的方法示例

    本文实例讲述了Java TreeSet实现学生按年龄大小和姓名排序的方法.分享给大家供大家参考,具体如下: import java.util.*; class Treeset { public static void main(String[] args) { TreeSet t = new TreeSet(); t.add(new student("a1",15)); t.add(new student("a2",15)); t.add(new student(&

  • mysql 设置自动创建时间及修改时间的方法示例

    本文实例讲述了mysql 设置自动创建时间及修改时间的方法.分享给大家供大家参考,具体如下: 第一种,通过ddl进行定义 CREATE TABLE `course` ( `course` varchar(255) DEFAULT NULL, `user` varchar(255) DEFAULT NULL, `score` int(11) DEFAULT NULL, `id` int(11) NOT NULL AUTO_INCREMENT, `create_time` datetime DEFA

  • mysql创建本地用户及赋予数据库权限的方法示例

    前言 大家在安装 mysql 时通常会生成一个超级用户 root,很多人之后就一直沿用这一个用户,虽然这会很方便,但超级用户权限太大,在所有地方使用它通常是一个安全隐患. 这一点跟操作系统的用户管理也是类似的,多数人贪图方便都直接使用 administrator 或 root 用户,其实是一种不建议的做法. 那么,要如何在 mysql 中创建 root 之外的用户并赋予相应权限呢? 我们直接来看一个示例: CREATE USER 'golden'@'localhost' IDENTIFIED B

  • MySQL利用AES_ENCRYPT()与AES_DECRYPT()加解密的正确方法示例

    前言 最近在工作中遇到一个需求是这样的:需要在使用AES_ENCRYPT()函数将明文加密,存储在MySQL中,但是遇到了一些问题--下面就来详细介绍下. 说将加密后的密文,解密取出来是NULL. 看了一下,她发过来的表结构: 再看了她通过AES_DECRYPT()函数加密了一个字符串,然后insert进去了,执行成功后,显示了一个warning: Query OK, 1 row affected, 1 warning (0.00 sec) (没有报错而是warning,大概是sql_mode的

  • MySQL 5.5 range分区增加删除处理的方法示例

    介绍 RANGE分区基于一个给定的连续区间范围,早期版本RANGE主要是基于整数的分区.在5.7版本中DATE.DATETIME列也可以使用RANGE分区,同时在5.5以上的版本提供了基于非整形的RANGE COLUMN分区.RANGE分区必须的连续的且不能重叠.使用 "VALUES LESS THAN ()" 来定义分区区间,非整形的范围值需要使用单引号,并且可以使用MAXVALUE作为分区的最高值. 本文将给大家介绍MySQL 5.5 range分区增加删除处理的相关内容,分享给大

  • 单页面vue引入百度统计的使用方法示例详解

    前言 最近组长安排着做一个项目,h5的应用下载项目,想着做起来还是比较容易,可是看到提出的需求,我就有点懵逼了!需要对应用的下载进行统计!!!我当时就想着我前端怎么对页面点击按钮就行数据统计啊!我以前的项目也有对应用的下载量就行数据统计的,可是那些项目都是后台人员编写进行数据统计的.我当时就有点不知所措了.想着怎么进行统计,怎么搞定这个!百度得知,百度统计可以帮着解决这个问题,可是没有用过啊!硬着头皮,进入自己的踩坑之旅! 方法如下 1.首先还是先在百度统计注册账号,并且新增网站,设置网站域名.

随机推荐