背景

最近公司业务要求,需要生成一些订单的报表,按年、季度、月、周、日这样的维度来分别统计数据,特别来做一下记录。

代码

年、月、日这三个比较简单,应该大部分的人都知道怎么写

转成年

SELECT create_time,DATE_FORMAT(create_time,'%Y') as year
from user

结果

转成月

SELECT create_time,DATE_FORMAT(create_time,'%m') as month
from user

结果

转成日

SELECT create_time,DATE_FORMAT(create_time,'%d') as day
from user

结果

转成季度
MySQL提供了转成季度的函数quarter(指定的日期)

SELECT create_time,quarter(create_time)as quarter
from qn_user

结果

转成周

MySQL提供了转成周的函数 week(指定的日期)
注1: week()函数返回的周是从0开始的,所以要展示的话需要+1
注2: week()函数返回的是以年为维度的0-52周,如果需要展示到本月第几周的话,可以使用当前日期的周数 - 当前月份1号的周数 + 1 = 当前时间对应的本月周数

-- 年为维度的周数
SELECT create_time,week(create_time) + 1 as week
from qn_user

结果

-- 转成本月对应的周数
SELECT create_time,
week(create_time) - week(concat(date_format(create_time,'%Y-%m'),'-01')) + 1 as weekDay
from qn_user

结果

最后
这样已经可以做到业务要求的各种日期维度下的统计报表了,剩下的需要怎么展示就看业务要求了。

MySQL用年、月、日、季度、周分别统计数据相关推荐

  1. MySql按每日、每周、每月分组统计数据

    MySql按每日.每周.每月分组统计数据 select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case g ...

  2. c# mysql executescalar_C# 操作MySQL数据库, ExecuteScalar()方法执行T-SQL语句, COUNT(*), 统计数据...

    C# 操作My SQL数据库需要引用"MySql.Data", 可通过两种方式获取. 1.从NuGet下载"Install-Package MySql.Data -Ver ...

  3. executescalar mysql_C# 操作MySQL数据库, ExecuteScalar()方法执行T-SQL语句, COUNT(*), 统计数据...

    C# 操作My SQL数据库需要引用"MySql.Data", 可通过两种方式获取. 1.从NuGet下载"Install-Package MySql.Data -Ver ...

  4. MySQL中按天、自然周、月、季度、年份统计

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

  5. mysql 获取某个时间段每一天的统计数据

    在一个系统的统计模块,经常会遇到根据日期来统计某个时间段内,每一天获取的数据量.一般情况下,看到这种需求都是考虑使用函数来搞定,所以我根据网上找到的资料,将解决办法搬了过来: SELECTcount( ...

  6. MySQL根据天、周、月、季度、年查询数据

    1. 查询今天数据 SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW()); 2. 查询昨天数据 SELECT * FROM 表名 WHERE T ...

  7. sql月度分组_SQL语句按年 月 日 季度分组

    1.按年份分组 select to_char(exportDate,'yyyy'),sum(amount) from table1 group by to_char(exportDate,'yyyy' ...

  8. mysql只比较月日的情况

    数据库只要比较月和日,年份并不在比较的要求之内的时候发现好多方法都不能解决这个问题.因为mysql自带的时间比较都是从年开始比较.因此我也只能通过mysql自带的MONTH和DAY 方法来获取到需要的 ...

  9. mysql 日期区间创建_按日期范围统计数据

    第一步:mysql使用存储过程,创建日历表 创建日历表: CREATE TABLE `capacity_common_date` ( `ID` int(11) NOT NULL AUTO_INCREM ...

最新文章

  1. 推荐系统产品与算法概述 | 深度
  2. linux c setuid函数解析
  3. Windows下MetaMap工具安装
  4. python3将字符串unicode转换为中文
  5. javascript动态创建radio button元素支持IE/Firefox
  6. 【计算机组成原理】总线
  7. 前端技术学习之选择器(十三)
  8. 红帽:IaaS与PaaS齐头并进
  9. 物联网安全形势严峻——除严加管控外别无选择
  10. 成功的人不是最聪明的那个人,但绝对是一个交流很棒的人
  11. 简单介绍三级分销系统开发源码
  12. 《Steve Jobs》
  13. socket函数返回Too many open files
  14. 超搞笑MSN名字大集合(转贴)
  15. 抖音SEO,抖音seo优化
  16. 《八股文》20道Redis面试题
  17. QT210 自制bootloader 移植kernel3.4.2 制作ramdisk busybox1.20.2
  18. 二、SM1P步进电机控制器接线方法
  19. Ubuntu Linux 3D桌面完全教程 显卡驱动安装方法 compiz特效介绍
  20. shell------免交互

热门文章

  1. mac无法挂载ntfs移动硬盘
  2. (although at least one Creator exiceParam` (although at leists): no String-argument constructor/fact
  3. 矩阵旋转(转置,顺时针,逆时针)
  4. 复习1:bool类型和char数组
  5. CobaltStrike上线微信提醒
  6. 教会你怎么安装和使用 Visio 哦 ~ ~
  7. python代替javascript_取代 JavaScript!Python 成 Stack Overflow 最受质疑编程语言
  8. Android 隐私合规API检查方案
  9. Nintendo帐户,用户ID和网络ID:Nintendo所有令人困惑的帐户,说明
  10. 3、基于51单片机语音识别控制三路开关系统设计