创建Table

CREATE TABLE `test` (
`cdate` datetime DEFAULT NULL,
`id` int(11) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入测试资料

DROP PROCEDURE IF EXISTS `test`;
CREATE PROCEDURE `test`(IN iCount INT,IN sNAME VARCHAR(10),in dtDate VARCHAR(10))
begin
declare i int default 0;
while i<iCount do
INSERT INTO `test` (`cdate`, `id`, `name`) VALUES (DATE_ADD(dtDate, interval i day), i, sNAME);
#commit;
set i = i+1;
end while;
end call test(365,'張飛','2016/09/01')
SELECT * from `test`

统计

一、年度查询  

查询 本年度的数据  

SELECT *  

FROM blog_article  

WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( ))  

二、查询季度数据  

查询数据附带季度数  

SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateTime` ) )  

FROM `blog_article`  

其他的同前面部分:查询 本季度的数据  

SELECT *  

FROM blog_article  

WHERE quarter( FROM_UNIXTIME( BlogCreateTime ) ) = quarter( curdate( ))  

三、查询月度数据  

本月统计(MySQL)  

select * from booking where month(booking_time) =  

month(curdate()) and year(booking_time) = year(curdate())  

本周统计(MySQL)  

select * from spf_booking where month(booking_time) =  

month(curdate()) and week(booking_time) = week(curdate())  

四、时间段  

N天内记录  

WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段) <= N  

当天的记录  

where date(时间字段)=date(now())  

或  

where to_days(时间字段) = to_days(now());  

查询一周:  

select * from table   where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);  

查询一个月:  

select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);  

查询'06-03'到'07-08'这个时间段内所有过生日的会员:  

   Select * From user Where  

DATE_FORMAT(birthday,'%m-%d') >= '06-03' and DATE_FORMAT(birthday,'%m-%d')  

<= '07-08';  

统计一季度数据,表时间字段为:savetime  

group by concat(date_format(savetime, '%Y '),FLOOR((date_format(savetime, '%m ')+2)/3))  

或  

select YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1,count(*)  

from yourTable  

group by YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1;  

五、分组查询  

   1、年度分组  

   2、月度分组  

   3、先按年度分组,再按月度分组  

   4、按年月分组  

   SELECT count(ArticleId), date_format(FROM_UNIXTIME( `BlogCreateTime`),'%y%m') sdate  FROM `blog_article` group by sdate  

   结果:  

count( ArticleId )     sdate  

17     0901  

11     0902  

5     0903  

6     0904  

2     0905  

1     0907  

12     0908  

6     0909  

11     0910  

3     0911  

其他方法参考:
我想做一个统计,数据库是mysql,统计出每天,每周,每月的记录数
建表的时候加个字段表示日期,然后查sql手册...
select count(*) from `table` where `date`='{某天}'
select count(*) from `table` where date_format(`date`,'%V')='{某周}'
select count(*) from `table` where date_format(`date`,'%c')='{某月}'
另一种方法:
select count( * ) from projects where editdate >= '2007-11-9 00:00:00' and editdate <=
'2007-11-9 24:00:00';
第三种方法:
每周的
SQL codeselect count(*) as cnt,week(editdate) as weekflg from projects where year(editdate)
=2007 group by weekflg 每月
SQL codeselect count(*) as cnt,month(editdate) as monthflg from projects where year
(editdate)=2007 group by monthflg 每天
SQL codeselect count(*) as cnt from projects group by date(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)
%T 24 小时的时间形式(hh : mm : s s)
%r 12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)
%p AM 或P M
%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 两位数字表示的年份
%% 直接值“%”

http://blog.csdn.net/leolu007/article/details/50015553

mysql 按年度、季度、月度、周、日SQL统计查询的更多相关文章

  1. MySQL按年度、季度、月度、周、日SQL统计查询

    说明 SELECT YEAR('2014-10-29') //2014 SELECT MONTH('2014-10-29') //10 SELECT DAY('2014-10-29') //29 SE ...

  2. mysql操作命令梳理(5)-执行sql语句查询即mysql状态说明

    在日常mysql运维中,经常要查询当前mysql下正在执行的sql语句及其他在跑的mysql相关线程,这就用到mysql processlist这个命令了.mysql> show process ...

  3. mysql 按类别之用一条SQL语句查询出每个班前10名学生数据

    select * from 学生信息表 a where 10 >  (select count(*) from 学生信息表 where 班级ID = a.班级ID and 班内名次 > a ...

  4. mysql按年度、季度、月度、周、日统计查询的sql语句

    本文介绍一些mysql中用于查询的sql语句,包括按年度.季度.月度.周.日统计查询等,有需要的朋友,可以参考下. 一.年度查询 查询 本年度的数据   SELECT * FROM blog_arti ...

  5. Sql server 查询某个时间段,分布有几周,几月和几日

    1. 查询:以“周”为单位 --查询以下时间段内分别有几周 --时间段:“2017-09-01”到“2017-10-1” select number as wknum from master..spt ...

  6. sql server 查询日期中的常用语句, 例如本周第一天, 年内的第几周,有用

    --本周第一天    SELECT DATEADD(Day,1-(DATEPART(Weekday,getdate())+@@DATEFIRST-1)%7,getdate())   --or    s ...

  7. 2017-2018-2 20179205《网络攻防技术与实践》第十一周作业 SQL注入攻击与实践

    <网络攻防技术与实践>第十一周作业 SQL注入攻击与实践 1.研究缓冲区溢出的原理,至少针对两种数据库进行差异化研究 缓冲区溢出原理   在计算机内部,输入数据通常被存放在一个临时空间内, ...

  8. 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效

    数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...

  9. 面试题: mysql数据库 已看1 简单的sql练习

    数据库总结--MySQL常见面试题 2015年03月24日 17:56:06 阅读数:7787 1.根据部门号从高到低,工资从低到高列出员工的信息 select * from employee ord ...

随机推荐

  1. C++多继承

    1.继承的三种方式: 公有继承(public),私有继承(private),保护继承(protected)三种继承方式的说明,如下表所示: 特征 公有继承 保护继承 私有继承 公有成员变成 派生类的公 ...

  2. EasyUI之DataGrid使用

    http://blog.csdn.net/liovey/article/details/9173931 背景介绍: 原 先项目采用普通的jsp页面来做为前端显示,用户体验差,并且为了实现某一种效果需要 ...

  3. ImportError: cannot import name 'NUMPY_MKL'

    >>> import scipy Traceback (most recent call last): File "<stdin>", line 1, ...

  4. android 工程出现感叹号错误

    android 工程出现感叹号错误: 错误问题分析,曾经导入的jar已经不存在工程目录中,project从其他地方导入时.没有及时更新,比如说svn下载到.project的文件,或者是path的文件. ...

  5. javascript 容错

    window.onerror=function(){ return true;} 系统有onerror报错的代码,只要重新一下就可以在javascript错误的时候返回真(true)

  6. 在iframe下的页面锚点失效问题,用jquery进行修复

    应用场景是:iframe页面没有滚动条,在父窗体中出现滚动条,锚点标记就会失效,因为,锚点是根据当前窗口滚动条滚动窗口的,成为子窗体后没有了滚动条,自然不会滚动. 解决办法是:用js判断页面是否被嵌套 ...

  7. LintCode "Binary Representation"

    Not hard to think of a solution. But the key is all details. class Solution { public: /** *@param n: ...

  8. usaco 2010年3月银组题解

    usaco银组解题报告 一.石子游戏如果把‘O’当作0,‘X’当做1,则N个洞的每一种状态都可以看做是一个N位二进制数.于是,这个问题就变成了求环绕的N位格雷码.幸运的是,这个结构很容易就能够用一个简 ...

  9. DatagridView 最后编辑状态数据无法自动提交的问题

    DataGridView1.CurrentCell = null 从一个帖子上看的,绝招! http://bbs.csdn.net/topics/120020614

  10. 最小生成树算法(Prim,Kruskal)

    边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权. 最小生成树(MST):权值最小的生成树. 生成树和最小生成树的应用:要连通n个城市需要n-1条边线路.可以 ...