栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【mysql】mysql分别按年/月/日/周分组统计数据

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【mysql】mysql分别按年/月/日/周分组统计数据

1.统计

我们可以使用date_format()函数格式化时间,然后进行分组操作

例如有一个学生表,结构如下

idnameageheightgendercreate_time
1pan2716912022-01-13 10:20:22
2yang1817712022-03-14 09:16:42
3daisy2515622022-07-19 19:58:03
-- 按年
select date_format(create_time, '%Y') years,avg(age),count(gender) from student where create_time > "2022-01-01 00:00:00" and create_time < "2022-07-19 19:58:03" group by years;
-- 按月
select date_format(create_time, '%Y-%m') months,avg(age),count(gender) from student where create_time > "2022-01-01 00:00:00" and create_time < "2022-07-19 19:58:03" group by months;
-- 按周
select date_format(create_time, '%Y-%u') weeks,avg(age),count(gender) from student where create_time > "2022-01-01 00:00:00" and create_time < "2022-07-19 19:58:03" group by weeks;
-- 按日
select date_format(create_time, '%Y-%m-%d') days,avg(age),count(gender) from student where create_time > "2022-01-01 00:00:00" and create_time < "2022-07-19 19:58:03" group by days;

如果不想用date_format函数,可以使用对应的year()/month()/week()/day()函数替代

2.占位符

date_format()需要传入一个特定的占位符,mysql常用的占位符可参考下表

占位符说明
%Y年(4位)
%y年(2位)
%M月(英文名,如January)
%m月(数字,如01)
%D日(英文名,如1st)
%d日(数字,如01)
%e日(数字,如1)
%U一年中的第几周,从0开始 ,周日是第一天
%u一年中的第几周,从0开始,周一是第一天
%H时,24小时制,例如15
%h时,12小时制,例如01
%i分
%s秒
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014114.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号