创建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. NLTK中的词性

    NOUN n,VERB v ,ADJ a, ADV r, ADJ_SAT s     NOUN: [('s', ''), ('ses', 's'), ('ves', 'f'), ('xes', 'x' ...

  2. JSP 相关试题(三)

    判断题 1.动态网页和静态网页的根本区别在于服务器端返回的HTML文件是事先存储好的还是由动态网页程序生成的(对 ) 2.Web开发技术包括客户端和服务器端的技术.(对 ) 3.Tomcat和JDK都 ...

  3. Netflix Zuul 了解

    Zuul 是提供动态路由,监控,弹性,安全等的边缘服务.Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门.Zuul 可以适当的对多个 Amazon Auto Scal ...

  4. linux -samba

    yum install samba samba-client samba-swat samba-common-3.6.9-151.el6.x86_64 //主要提供samba服务器的设置文件与设置文件 ...

  5. ECS修改默认端口22及限制root登录

    首先要创建一个用户,用系统默认的www用户也可以(这里不介绍如何创建用户) 接下来要修改www的密码: passwd www 执行此命令后会让你输入两次密码.这样就设置好了. 然后进入: vi /et ...

  6. spring基于注解的配置文件

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  7. NFC会员管理-转载自http://technews.cn/2014/09/13/nfc-sticker/

    基隆的百年名店“李鹄饼店”误用馊水油,客人纷纷上门退货,因退货条件宽松,客人一货两退,造成巨大的损失.为了平息客人的愤怒,店家允许客人凭发 票或商品办理退货,有的客人先用发票退一次钱,再用商品退一次钱 ...

  8. textarea 限制字数

    $("textarea").keyup(function(){        //console.log($(this).val().length);        var L=$ ...

  9. AngularJs初步学习笔记(part1)

    一.摘要: angular是采用JavaScript编写的前端mvc框架,帮助开发者编写现代化的单页面应用.它尤其适用编写有大量CRUD操作的,具有Ajax风格的客户端应用. 二.总结: Angula ...

  10. 使用 Windows PowerShell 来管理和开发 windowsazure.cn 账户的特别注意事项

    6月6日,微软面向中国大陆用户开放了Microsoft Azure公众预览版的申请界面.大家可以申请免费的 beta 试用,收到内附邀请码的通知邮件后只需输入激活码即可开始免费试用.具体网址为: ht ...