说明SELECTYEAR('-10-29')//
SELECTMONTH('-10-29')//10
SELECTDAY('-10-29')//29
SELECTQUARTER('-10-29')//4季度
SELECTDAYOFWEEK('-10-29')//4星期
一、年度查询
查询本年度的数据SELECT*
FROMblog_article
WHEREyear(FROM_UNIXTIME(BlogCreateTime))=year(curdate())
二、查询季度数据
查询数据附带季度数SELECTArticleId,quarter(FROM_UNIXTIME(`BlogCreateTime`))
FROM`blog_article`
其他的同前面部分:查询本季度的数据SELECT*
FROMblog_article
WHEREquarter(FROM_UNIXTIME(BlogCreateTime))=quarter(curdate())
三、查询月度数据
本月统计(MySQL)select*frombookingwheremonth(booking_time)=
month(curdate())andyear(booking_time)=year(curdate())
本周统计(MySQL)select*fromspf_bookingwheremonth(booking_time)=
month(curdate())andweek(booking_time)=week(curdate())
四、时间段
N天内记录WHERETO_DAYS(NOW())-TO_DAYS(时间字段)<=N
当天的记录wheredate(时间字段)=date(now())
或whereto_days(时间字段)=to_days(now());
查询一周select*fromtablewhereDATE_SUB(CURDATE(),INTERVAL7DAY)<=date(column_time);
查询一个月select*fromtablewhereDATE_SUB(CURDATE(),INTERVALINTERVAL1MONTH)<=date(column_time);
查询’06-03’到’07-08’这个时间段内所有过生日的会员:Select*FromuserWhere
DATE_FORMAT(birthday,'%m-%d')>='06-03'andDATE_FORMAT(birthday,'%m-%d')<='07-08';
统计一季度数据,表时间字段为:savetimegroupbyconcat(date_format(savetime,'%Y'),FLOOR((date_format(savetime,'%m')+2)/3))
或selectYEAR(savetime)*10+((MONTH(savetime)-1)DIV3)+1,count(*)
fromyourTable
groupbyYEAR(savetime)*10+((MONTH(savetime)-1)DIV3)+1;
五、分组查询
1、年度分组
2、月度分组
3、先按年度分组,再按月度分组
4、按年月分组SELECTcount(ArticleId),date_format(FROM_UNIXTIME(`BlogCreateTime`),'%y%m')sdateFROM`blog_article`groupbysdate
结果:count(ArticleId)sdate
170901
110902
50903
60904
20905
10907
120908
60909
110910
30911
其他方法参考:
我想做一个统计,数据库是mysql,统计出每天,每周,每月的记录数
建表的时候加个字段表示日期,然后查sql手册…selectcount(*)from`table`where`date`='{某天}'
selectcount(*)from`table`wheredate_format(`date`,'%V')='{某周}'
selectcount(*)from`table`wheredate_format(`date`,'%c')='{某月}'
另一种方法:selectcount(*)fromprojectswhereeditdate>='-11-900:00:00'andeditdate<=
'-11-924:00:00';
第三种方法:
每周的SQLcodeselectcount(*)ascnt,week(editdate)asweekflgfromprojectswhereyear(editdate)
=groupbyweekflg
每月SQLcodeselectcount(*)ascnt,month(editdate)asmonthflgfromprojectswhereyear
(editdate)=groupbymonthflg
每天SQLcodeselectcount(*)ascntfromprojectsgroupbydate(editdate)
mysql中DATE_FORMAT(date, format)函数可根据format字符串格式化日期或日期和时间值date,返回结果
串。
也可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式
化date值:
下面是函数的参数说明:%S,%s两位数字形式的秒(00,01,...,59)
%i两位数字形式的分(00,01,...,59)
%H两位数字形式的小时,24小时(00,01,...,23)
%h,%I两位数字形式的小时,12小时(01,02,...,12)
%k数字形式的小时,24小时(0,1,...,23)
%l数字形式的小时,12小时(1,2,...,12)
%T24小时的时间形式(hh:mm:ss)
%r12小时的时间形式(hh:mm:ssAM或hh:mm:ssPM)
%pAM或PM
%W一周中每一天的名称(Sunday,Monday,...,Saturday)
%a一周中每一天名称的缩写(Sun,Mon,...,Sat)
%d两位数字表示月中的天数(00,01,...,31)
%e数字形式表示月中的天数(1,2,...,31)
%D英文后缀表示月中的天数(1st,2nd,3rd,...)
%w以数字形式表示周中的天数(0=Sunday,1=Monday,...,6=Saturday)
%j以三位数字表示年中的天数(001,002,...,366)
%U周(0,1,52),其中Sunday为周中的第一天
%u周(0,1,52),其中Monday为周中的第一天
%M月名(January,February,...,December)
%b缩写的月名(January,February,...,December)
%m两位数字表示的月份(01,02,...,12)
%c数字表示的月份(1,2,...,12)
%Y四位数字表示的年份
%y两位数字表示的年份
%%直接值“%”
注:文章由seo技术/进行编辑,转载需注明来源。