mysql 获取当月每一天_mysql 获取某个时间段每一天的统计数据

本文介绍了如何在MySQL中利用日期函数DATE_FORMAT和GROUP BY来统计特定时间段内每一天的数据量。示例查询展示了如何获取2016年每天的录入量,并解释了各个查询部分的作用。同时,列举了MySQL日期格式化选项,帮助理解不同日期格式的需求。
摘要由CSDN通过智能技术生成

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

SELECT

count(*),

DATE_FORMAT(doc.create_time, "%Y-%m-%d") AS t

FROM

n_workflow_documents doc

WHERE

DATE_FORMAT(doc.create_time, "%Y") = "2016"

GROUP BY

t

ORDER BY NULL

这里解释下每个环节,方便新手。

首先,查询字段这里,count(*)是我们需要的统计数据的条数,按照实际需求可以添加需要的字段。

DATE_FORMAT(doc.create_time, "%Y-%m-%d")这里是将特定日期格式化成 YYYY-mm-dd 格式的日期。这里的格式用于后面的分组,所以按照不同的需求,可以自定义格式。

例如:我的需求是获取每一天的录入量,我就按照 年份-月份-日期 的格式进行分组然后通过count(*)得到。

或者:获取某个月内每个月的数据量,就将格式改为

DATE_FORMAT(doc.create_time, "%Y-%m") AS t当然,where条件需要能够匹配上格式,不能where条件限制到了日期,你却用月份分组。

order by null 可能有些人看不懂,这个就需要去了解mysql 的执行计划了。

最后,我把mysql的日期输出格式列出来:

%a     缩写星期名

%b     缩写月名

%c     月,数值

%D     带有英文前缀的月中的天

%d     月的天,数值(00-31)

%e     月的天,数值(0-31)

%f     微秒

%H     小时 (00-23)

%h     小时 (01-12)

%I     小时 (01-12)

%i     分钟,数值(00-59)

%j     年的天 (001-366)

%k     小时 (0-23)

%l     小时 (1-12)

%M     月名

%m     月,数值(00-12)

%p     AM 或 PM

%r     时间,12-小时(hh:mm:ss AM 或 PM)

%S     秒(00-59)

%s     秒(00-59)

%T     时间, 24-小时 (hh:mm:ss)

%U     周 (00-53) 星期日是一周的第一天

%u     周 (00-53) 星期一是一周的第一天

%V     周 (01-53) 星期日是一周的第一天,与 %X 使用

%v     周 (01-53) 星期一是一周的第一天,与 %x 使用

%W     星期名

%w     周的天 (0=星期日, 6=星期六)

%X     年,其中的星期日是周的第一天,4 位,与 %V 使用

%x     年,其中的星期一是周的第一天,4 位,与 %v 使用

%Y     年,4 位

%y     年,2 位

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值