在Oracle数据库中,通过to_char()函数来操作日期变量,而在MySQL中,则通过date_format()函数实现日期相关周期的统计。date_format()函数一共有两个参数:date参数表示日期变量,format参数表示日期格式。

如果想查看date_format()函数的具体参数及其取值情况,可以搜索引擎中自行查询。比如输入“MYsql date_format”可以看到W3school中对该函数的详细介绍。
http://www.w3school.com.cn/sql/func_date_format.asp

  • 1. 按天统计
    format参数的取值为’%y%m%d’,可以按天输出统计结果。
SELECT DATE_FORMAT(postDateTime,'%y年%m月%d日') as d,count(*)
FROM table
GROUP BY DATE_FORMAT(postDateTime,'%y%m%d')
ORDER BY d asc;

输出结果如下所示:

  • 2. 按自然周统计
    format()函数的format参数取值为’%y%u’时,可实现按年、年中的周来统计结果。如果在where条件中限制是某一年的周期,可以直接将format参数的值配置为’%u’,否则一定要用’%y%u’,不然会把不同年的第n周合并到一起而出现错乱。
SELECT DATE_FORMAT(postDateTime,'%y年%u周') as w,min(postDateTime) as st,count(*)
FROM table
GROUP BY DATE_FORMAT(postDateTime,'%y%u')
ORDER BY w asc;

输出结果如下所示:

  • 3. 按月统计
    format()函数的format参数值为’%y%m’时,可实现按月份输出聚合结果。
SELECT DATE_FORMAT(postDateTime,'%y年%m月') as m,count(*)
FROM table
GROUP BY DATE_FORMAT(postDateTime,'%y%m')
ORDER BY m asc

其统计结果如下所示:

  • 4. 按季度统计
    date_format()函数没有直接按照季节输出结果的功能,但这对于数据分析师并不是什么难事,自己利用月度聚合结果去加工以下即可:
SELECT FLOOR((DATE_FORMAT(postDateTime,'%m')-1)/3)+1 as q,min(postDateTime) as st,count(*)
FROM table
WHERE DATE_FORMAT(postDateTime,'%Y') = 2018
GROUP BY FLOOR((DATE_FORMAT(postDateTime,'%m')-1)/3)+1
ORDER BY q asc;

使用到了floor函数,根据月份去判断所属季节,并输出季节对应的起始月份。
结果如下所示:

  • 5. 按年份统计
    date_format()函数的format参数值为’%Y’或’%y’时可实现按年份输出统计结果。
SELECT DATE_FORMAT(postDateTime,'%Y') as y,count(*)
FROM table
GROUP BY DATE_FORMAT(postDateTime,'%Y')
ORDER BY y asc;

MySQL中按天、自然周、月、季度、年份统计相关推荐

  1. 日 周 月 季度 年 统计

    // 总量$total = Db::name("total")->count();// 周访问量$week = Db::name("total")-> ...

  2. MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  3. mysql查询最近一个自然周_自然周与自然月的Hive统计SQL

    按照周或者月统计活跃数: 周: SELECT week, COUNT(DISTINCT pin), business_type FROM ( SELECT DISTINCT user_log_acct ...

  4. mysql分季度统计数据,mysql按日周月季度统计数据

    mysql按日周月季度统计数据 mysql按日.周.月.季度统计数据 1.使用DATE_FORMAT做等值条件查询 2.DATE_FORMAT函数语法,参考w3school 3.可使用格式 4.使用示 ...

  5. java8 日期范围内 日/周/月/季度/年 的日期结果集

    java8 日期范围内 日/周/月/季度/年 的日期结果集 /*** 根据时间范围列出所有日/周/月/季/年** @Author Moqi* @Date 2020/4/30* @Version V1. ...

  6. MySQL 按周,月,季度,年查询

    一.年度查询 查询 本年度的数据 <span style="font-size:18px;">SELECT * FROM tableName WHERE year( t ...

  7. mysql中如何获取年、月、日及本周是一年中的第几周??

    select year(curdate()),month(curdate()),day(curdate()); select weekofyear(curdate()); 有点细微的差别,weekof ...

  8. mysql查询同一年入职的_按年份统计入职人数sql语句

    按年份统计入职人数sql语句 /* 员工编号 部门 入职时间 离职时间(离职空值即没有请辞) 123 00 20050203 20070101 124 00 20071231 20080504 125 ...

  9. mysql获取当月数据_MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  10. mysql每个月数据按天行转列_Mysql 中使用DATE_FORMAT函数按月、周统计数据

    项目中的统计报表作的很多,需求中有按周.月统计数据的.查看了Mysql的API,发现Date_format是格式化日期的,看了Date_format()的具体说明后就用这个函数按周统计,sql大致如下 ...

最新文章

  1. quartz工程容器启动与 Service注入
  2. 光线在传播过程中是否会有变化?可以通过镜子接力的方式抵达目的地吗!?...
  3. python编译helloworld_python3学习笔记--001--python HelloWorld
  4. STL中map的使用要点
  5. leetcode - 15. 三数之和
  6. iOS5 UIKit新特性
  7. linux shell中的流编辑器sed的使用
  8. python判断字符串里的字符_Python检测字符串中是否包含某字符集合中的字符
  9. 常用编码软件简单使用记录 1 : 自主编码器
  10. *最近培训的一个题目:蚂蚁爬竿
  11. h5调用摄像头 android,H5 使用移动端摄像头
  12. 读博太孤独?你不是一个人!
  13. iOS扫一扫功能开发
  14. android gravity参数,android - 如何以编程方式设置layout_gravity?
  15. css的@font-face和box-shadow、text-shadow属性
  16. 计算机机房防雷接地标准,机房防雷接地规范与防雷接地方式,你知道吗?
  17. 原教旨主义的TCP BBR初始pacing rate计算
  18. 分享5款宝藏APP,快来看看,你有没有安装
  19. N位水仙花数 Java
  20. 我想谈一场永不分手的恋爱

热门文章

  1. 图片转成pdf格式怎么转?三个好用的方法教给你
  2. python excel 饼图 简书_Python实现绘画多个饼图
  3. 沈寅鑫银行内训实战专家
  4. SAP STO With Billing流程与配置
  5. 炸裂!PDF转Word彻底告别收费时代,这个OCR开源项目要逆天!
  6. 「OceanBase 4.1 体验」|快速安装部署
  7. 对办公文档加密 到了外部计算机就无法打开,使用文件夹加密超级大师加密了文件,更换电脑后加密文件打不开了怎么办?...
  8. 图像处理那张熟悉的面孔——Lena
  9. 【JQuery】操作 DOM
  10. Elasticsearch与最新的log4j2零日漏洞