天津河东区网站建设,个人中心页面,wordpress导航文件,wordpress头像尺寸目录 前言按天统计按周统计按月统计按年统计date_format参数 前言
mysql的date_format函数想必大家都使用过吧#xff0c;一般用于日期时间转化
# 例如
select DATE_FORMAT(2023-01-01 08:30:50,%Y-%m-%d %H:%i:%s)
# 可以得出 2023-01-01 08:30:50# 或者是
select DATE_FOR… 目录 前言按天统计按周统计按月统计按年统计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(*) orderNumFROM table oGROUP BY evertdayORDER BY evertday DESC按周统计
按周统计就比较麻烦一点了我这边提供了两种思路
第一种
SELECTsubdate(date_format(o.bill_date,%Y-%m-%d),date_format(o.bill_date,%w)) weekend,COUNT(*) orderNumFROM test oGROUP BY weekendORDER BY weekend DESCLIMIT 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
按月统计
按月统计的话就是另外一种思路了因为按周的统计的话还存在日的概念而按月统计的话就可以省略掉日期了
selectDATE_FORMAT( bill_date, %Y-%m ) months,count(1) count
fromt
group by months
order by months desc按年统计
这个跟按月统计一个道理只统计年份就可以了
selectDATE_FORMAT( bill_date, %Y ) months,count(1 ) count
fromt
group by months
order by months descdate_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一个星期中的天数(0Sunday ……6Saturday %U星期(0……52), 这里星期天是星期的第一天%u星期(0……52), 这里星期一是星期的第一天%%一个文字“%”