创建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. MySQL数据库InnoDB存储引擎多版本控制(MVCC)实现原理分析

    文/何登成 导读:   来自网易研究院的MySQL内核技术研究人何登成,把MySQL数据库InnoDB存储引擎的多版本控制(简称:MVCC)实现原理,做了深入的研究与详细的文字图表分析,方便大家理解I ...

  2. Sklearn库例子4:分类——Lasso分类例子

    Lasso回归: #-*- encoding:utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn.met ...

  3. Python内部类型

      Python使用对象模型来存储数据 . 身份:每个对象都有一个唯一的身份标识自己,任何对象的身份否可以使用内建函数id()来得到.这个值可以被认为是该对象的内存地址 . 类型:对象的类型决定了该对 ...

  4. OpenJudge计算概论-Tomorrow never knows【输入日期计算下一天的日期】

    /*====================================================================== Tomorrow never knows? 总时间限制 ...

  5. 【转】使用itms-services从浏览器发布iOS App遇到的问题总结

    itms-service是apple为iOS企业用户($299)提供的无线分发安装方式所使用的协议,使用这种方式发布应用不需要通过App Store,任何iOS设备都可以安装企业用户通过这种方式发布的 ...

  6. Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)转

    互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...

  7. android中的EditView控件

    android中的EditView控件 EditText继承关系:View-->TextView-->EditText ,EditText是可编辑文本框 1.EditText默认情况下,光 ...

  8. CentOS快速搭建subversion服务器

    环境:centos x86_64说明:使用daemon的方式来跑svn,不使用apache首先到:http://subversion.tigris.org/ 下载最新的subversion源码 我下的 ...

  9. 正在调用的 ServicedComponent 配置不正确(请使用 regsvcs 重新注册)

    问题: 正在调用的 ServicedComponent 配置不正确(请使用 regsvcs 重新注册)   方法1: 我用的是64位操作系统.IIS中,启用32位应用程序设置为false.这样就可以了 ...

  10. 【redis】 linux 下redis 集群环境搭建

    Redis集群 (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:63791 ...