如果只是简单的统计一两天的数据量,到是可以写一条语句,改改日期就可以实现,mysql实现(其中一种写法)。我们在日常数据统计时常会遇到 “-12-12 16:21:12” or “-12-12 16:21:12.609000”这样的时间格式,假如要统计某一天产生了多少条数据量,SQL 该怎么写呢?本文希望能够对大家学习和使用有所帮助。
-- 统计 -12-11 的数据量有多少:SELECTcount( content ) AS content FROMTABLE WHEREcreateTime BETWEEN '-12-11' AND '-12-12';
就可得到以下数据:
-- 统计 -12-12 的数据量有多少,只需简单更改下日期即可:SELECTcontent,createTime,count( createTime ) FROMTABLE WHEREcreateTime BETWEEN '-12-12' AND '-12-13' GROUP BYcontent,createTime;
如果是需要统计最近60天,每一天对应的数据量是多少,又怎么实现呢?难道用以上改时间的方法更改60+ 次吗?当然不是…
此时就需要对日期时间进行格式化处理
方法:
date_format(sysdate(),’%Y-%m-%d’)
-- 时间格式化为 “YYYY-MM-DD”SELECTcontent,date_format( createTime, '%Y-%m-%d' ) AS createTime FROMTABLE WHEREcreateTime > '-12-10';
经过格式化的日期显示为:
-- 最后再套一层sql即可统计出每一天的数据量:SELECTa.createTime,count( a.createTime ) FROM( SELECT content, date_format( createTime, '%Y-%m-%d' ) AS createTime FROM TABLE WHERE createTime > '-12-10' ) a GROUP BYa.createTime;
得到结果为: