mysql按年度、季度、月度、周、日SQL统计查询

说明


1

2

3

4

5

SELECT YEAR(‘2014-10-29‘)   //2014

SELECT MONTH(‘2014-10-29‘)  //10

SELECT DAY(‘2014-10-29‘)  //29

SELECT QUARTER(‘2014-10-29‘)  //4  季度

SELECT DAYOFWEEK(‘2014-10-29‘//4  星期

一、年度查询
查询本年度的数据


1

2

3

SELECT *

FROM blog_article

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

二、查询季度数据
查询数据附带季度数


1

2

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

FROM `blog_article`

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


1

2

3

SELECT *

FROM blog_article

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

三、查询月度数据
本月统计(MySQL)


1

2

select * from booking where month(booking_time) =

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

本周统计(MySQL)


1

2

select * from spf_booking where month(booking_time) =

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

四、时间段
N天内记录


1

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

当天的记录


1

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


1

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

查询一周


1

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

查询一个月


1

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

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


1

2

Select * From user Where

DATE_FORMAT(birthday,‘%m-%d‘) >= ‘06-03‘ and DATE_FORMAT(birthday,‘%m-%d‘)<= ‘07-08‘;

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


1

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


1

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、按年月分组


1

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

结果:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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手册…


1

2

3

select count(*) from `table` where `date`=‘{某天}‘

select count(*) from `table` where date_format(`date`,‘%V‘)=‘{某周}‘

select count(*) from `table` where date_format(`date`,‘%c‘)=‘{某月}‘

另一种方法:


1

2

select count( * ) from projects where editdate >= ‘2007-11-9 00:00:00‘ and editdate <=

‘2007-11-9 24:00:00‘;

第三种方法:
每周的


1

2

SQL codeselect count(*) as cnt,week(editdate) as weekflg from projects where year(editdate)

=2007 group by weekflg

每月


1

2

SQL codeselect count(*) as cnt,month(editdate) as monthflg from projects where year

(editdate)=2007 group by monthflg

每天


1

SQL codeselect count(*) as cnt from projects group by date(editdate)

mysql中DATE_FORMAT(date, format)函数可根据format字符串格式化日期或日期和时间值date,返回结果
串。
也可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式
化date值:
下面是函数的参数说明:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

%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 两位数字表示的年份

%% 直接值“%”

注:文章由seo技术 http://www.618sale.com/ 进行编辑,转载需注明来源。

from: http://hfreeze.blog.51cto.com/1639680/1569278

时间: 2024-12-24 05:18:01

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

Mysql 按年度、季度、月度、周、日SQL统计查询

mysql没有提供unix时间戳的专门处理函数,所以,如果遇到时间分组,而你用的又是整型unix时间戳,则只有转化为mysql的其他日期类型! FROM_UNIXTIM()将unix时间戳转为datetime等日期型! 特殊情况:createtime为int时,写法如下 select * from paycord where month(FROM_UNIXTIME(createtime, '%y-%m-%d')) = month(curdate()) and year(FROM_UNIXTIME

my97datepicker 年,季度,月,周,日

1.选择年 <input id="d1212" class="Wdate" type="text" onfocus="WdatePicker({dateFmt:'yyyy年'})"/> 2.选择季度: <input id="yearNum"  onclick="WdatePicker({dateFmt:'yyyy年MM季度', isQuarter:true, isShowOK:f

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

在日常mysql运维中,经常要查询当前mysql下正在执行的sql语句及其他在跑的mysql相关线程,这就用到mysql processlist这个命令了.mysql> show processlist;            //查询正在执行的sql语句mysql> show full processlist;       //查询正在执行的完整sql语句mysql> kill connection id           //停掉processlist查询出的某个线程,id是对应的

SQL——统计查询

数据表格如下:      我使用的是mysql数据库,因此相关的sql为 CREATE TABLE `stuscore` ( `id` int(11) NOT NULL auto_increment, `name` varchar(20) default NULL, `subject` varchar(20) default NULL, `score` varchar(20) default NULL, `stuid` varchar(10) default NULL, PRIMARY KEY 

TP SQL统计查询语法

获取今日订单总数和订单总金额 //fields区分出order_type不等于1的订单,订单金额money加运费order_freight合计 $fields = [ 'COUNT(1) as order_num', 'SUM(IF(order_type != 1, money + order_freight, 0)) as order_price' ]; //where区分统计今日订单,已付款pay_status状态 $where = [ [ 'create_time', 'between',

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

本文介绍一些mysql中用于查询的sql语句,包括按年度.季度.月度.周.日统计查询等,有需要的朋友,可以参考下. 一.年度查询 查询 本年度的数据 SELECT * FROM blog_article WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( )) 二.查询季度数据 查询数据附带季度数 SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateTime` ) )

MySql按周/月/日分组统计数据的方法

知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; select DATE_FORMAT(create_time,'%Y%m') month

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

--本周第一天    SELECT DATEADD(Day,1-(DATEPART(Weekday,getdate())[email protected]@DATEFIRST-1)%7,getdate())   --or    select dateadd(wk, datediff(wk,0,getdate()), 0)   --本周第一天    select dateadd(wk, datediff(wk,0,getdate()), 6)      --上月第一天    SELECT CONV

python 3 mysql sql逻辑查询语句执行顺序

python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <havin