目录
前言按天统计按周统计按月统计按年统计date_format参数
前言
mysql的date_format函数想必大家都使用过吧,一般用于日期时间转化
# 例如
select DATE_FORMAT('2023-01-01 08:30:50','%Y-%m-%d %H:%i:%s')
# 可以得出 2023-01-01 08:30:50
# 或者是
select DATE_FORMAT('2023-01-01 08:30:50','%Y-%m-%d')
# 可以得出
不过很多时间不仅仅仅限于这些最基础的使用,当我们需要对于时间的数据有更高的要求时,就需要对这个函数有更多的了解了,例如按一定的时间段分组统计这段时间的数据,本期我们主要讲这个分组统计的操作,下面直接进入正题
按天统计
按天统计是一个比较基础的统计方式,大部分人也应该能直接写出来
select
date_format(o.bill_date,'%Y-%m-%d') evertday,
COUNT(*) orderNum
FROM table o
GROUP BY evertday
ORDER BY evertday DESC
按周统计
按周统计就比较麻烦一点了,我这边提供了两种思路:
第一种:
SELECT
subdate(date_format(o.bill_date,'%Y-%m-%d'),date_format(o.bill_date,'%w')) weekend
,COUNT(*) orderNum
FROM test o
GROUP BY weekend
ORDER BY weekend DESC
LIMIT 9
这边可以看出日期已经按照周进行排序分组了,7月30到8月5号的数据都已经统计到了7月30这个weekend中 我们简单剖析一下: 首先date_format(o.bill_date,'%Y-%m-%d')大家都很清楚会把日期变成yyyy-MM-dd形式 而date_format(o.bill_date,'%w')会统计这天是这周的礼拜几,这个参数我在最后整理了一张表格可供大家查看使用 那么8月2号正好是礼拜三,再通过subdate函数去减一下这个日期就可以统计出来一个对应的时间了,或者也有朋友喜欢用DATE_SUB函数都是一样的效果,这样就统计出来了上周末的时间,也就是上周末到这周末是一个轮回
第二种:
-- 2、
select
-- weekday(bill_date) as weekday,
date_format(date_add(bill_date, interval - (weekday(bill_date) +1) day),'%Y-%m-%d') as monday,
count(1)
from t
group by monday
order by monday desc
总体的思路都差不多,计算出了上周日的时间点进行group by
按月统计
按月统计的话就是另外一种思路了,因为按周的统计的话还存在日的概念,而按月统计的话就可以省略掉日期了
select
DATE_FORMAT( bill_date, '%Y-%m' ) months,
count(1) count
from
t
group by months
order by months desc
按年统计
这个跟按月统计一个道理,只统计年份就可以了
select
DATE_FORMAT( bill_date, '%Y' ) months,
count(1 ) count
from
t
group by months
order by months desc
date_format参数
格式描述%M月名字(January……December)%W星期名字(Sunday……Saturday)%D有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)%Y年, 数字, 4 位%y年, 数字, 2 位%a缩写的星期名字(Sun……Sat)%d月份中的天数, 数字(00……31)%e月份中的天数, 数字(0……31)%m月, 数字(01……12)%c月, 数字(1……12)%b缩写的月份名字(Jan……Dec)%j一年中的天数(001……366)%H小时(00……23)%k小时(0……23)%h小时(01……12)%I小时(01……12)%l小时(1……12)%i分钟, 数字(00……59)%r时间,12 小时(hh:mm:ss [AP]M)%T时间,24 小时(hh:mm:ss)%S秒(00……59)%s秒(00……59)%pAM或PM%w一个星期中的天数(0=Sunday ……6=Saturday )%U星期(0……52), 这里星期天是星期的第一天%u星期(0……52), 这里星期一是星期的第一天%%一个文字“%”
精彩文章
大家都在找:
Mysql:mysql主从复制
数据库:数据库下载
发表评论