前言
MySQL按照年月日季度分组,结合日期函数
年
SELECT DATE_FORMAT(c_time,'%Y') AS TIME ,COUNT(*) COUNT FROM `order` GROUP BY TIME
月
SELECT DATE_FORMAT(c_time,'%Y-%m') AS TIME ,COUNT(*) COUNT FROM `order` GROUP BY TIME
周
显示周在年中第几周的
SELECT DATE_FORMAT(c_time,'%Y-%u') AS TIME ,COUNT(*) COUNT FROM `order` GROUP BY TIME
日
SELECT STR_TO_DATE(c_time,'%Y-%m-%d') AS TIME FROM `order` GROUP BY TIME
季度
SELECT QUARTER( c_time) AS TIME,COUNT(c_time) COUNT FROM `order` GROUP BY TIME
函数介绍
QUARTER()
返回当前函数所在那个季度
SELECT QUARTER("2017-11-15");
STR_TO_DATE()
参考文章
将字符串时间转为日期,但是只能到日,想转成年月形式不行
str_to_date(date,’%Y-%m-%d’) ————–>oracle中的to_date();
SELECT STR_TO_DATE('2020-11-09 15:43:28','%Y-%m-%d %H:%i:%s') AS TIME;
SELECT STR_TO_DATE('2020-11-09 15:43:28','%Y-%m-%d') AS TIME;
SELECT STR_TO_DATE('2020-11-09','%Y-%m-%d') AS TIME;
%Y:代表4位的年份
%y:代表2为的年份
%m:代表月, 格式为(01……12)
%c:代表月, 格式为(1……12)
%d:代表月份中的天数,格式为(00……31)
%e:代表月份中的天数, 格式为(0……31)
%H:代表小时,格式为(00……23)
%k:代表 小时,格式为(0……23)
%h: 代表小时,格式为(01……12)
%I: 代表小时,格式为(01……12)
%l :代表小时,格式为(1……12)
%i: 代表分钟, 格式为(00……59) 【只有这一个代表分钟,大写的I 不代表分钟代表小时】
%r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)
%T:代表 时间,格式为24 小时(hh:mm:ss)
%S:代表 秒,格式为(00……59)
%s:代表 秒,格式为(00……59)
DATE_FORMAT()
W3schoolMySQL DATE_FORMAT() 函数
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
date_format(date,’%Y-%m-%d’) ————–>oracle中的to_char();
SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p') AS TIME;
SELECT DATE_FORMAT(NOW(),'%m-%d-%Y') AS TIME;
SELECT DATE_FORMAT(NOW(),'%d %b %y') AS TIME;
SELECT DATE_FORMAT(NOW(),'%d %b %Y %T:%f') AS TIME;