mysql怎么分时间段,mysql 时间段

请教各位大牛关于mysql按时间段分组查询的问题。

用 DATE_FORMAT 函数就可以了.

成都创新互联专注于企业营销型网站建设、网站重做改版、克州网站定制设计、自适应品牌网站建设、H5技术商城网站制作、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为克州等各大城市提供网站开发制作服务。

格式化以后的结果里面, 仅仅包含 年月日时 这4个部分即可.

然后就可以 Group By 了。

下面是 DATE_FORMAT 函数的例子与说明。

mysql SELECT

- DATE_FORMAT(NOW(), '%Y~%m~%d %k.%i.%s' ) A;

+---------------------+

| A |

+---------------------+

| 2010~10~22 20.55.09 |

+---------------------+

1 row in set (0.00 sec)

%W 星期名字(Sunday……Saturday)

%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)

%Y 年, 数字, 4 位

%y 年, 数字, 2 位

%a 缩写的星期名字(Sun……Sat)

%d 月份中的天数, 数字(00……31)

%e 月份中的天数, 数字(0……31)

%m 月, 数字(01……12)

%c 月, 数字(1……12)

%b 缩写的月份名字(Jan……Dec)

%j 一年中的天数(001……366)

%H 小时(00……23)

%k 小时(0……23)

%h 小时(01……12)

%I 小时(01……12)

%l 小时(1……12)

%i 分钟, 数字(00……59)

%r 时间,12 小时(hh:mm:ss [AP]M)

%T 时间,24 小时(hh:mm:ss)

%S 秒(00……59)

%s 秒(00……59)

%p AM或PM

%w 一个星期中的天数(0=Sunday ……6=Saturday )

%U 星期(0……52), 这里星期天是星期的第一天

%u 星期(0……52), 这里星期一是星期的第一天

%% 一个文字“%”。

所有的其他字符不做解释被复制到结果中。

Mysql 的按时间段分组查询

时间存入数据库一般情况下都是以时间戳存入的,所以你只需要在查询的时候加上时间戳对比的条件即可。

此处只说思路,具体的自己去查,去百度吧,百度是最好的老师,不要去要现成的代码,那样对你没有任何帮助。

根据查询的知识和自己的知识结合去测试,不停地测试,直到查询到自己想要的结果。

MySql如何按时间段来分组

SELECT DATE_FORMAT(time,'%Y-%m-%d') as day, sum(case when amount0 then amount when amount=0 then 0 end) as amount1

from table where time='2014-11-01' group by day;

我没有测试。time表示日期,amount表示数量。查询11月后每天成交数量

关于数据库(MYSQL)时间段的拆分问题,怎么样编程实现?

可以看下时间函数

对日期时间进行加减法运算

 (ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词,也可以用运算符 和-而不是函数

 date是一个DATETIME或DATE值,expr对date进行加减法的一个表达式字符串type指明表达式expr应该如何被解释

 [type值 含义 期望的expr格式]:

 SECOND 秒 SECONDS

 MINUTE 分钟 MINUTES

 HOUR 时间 HOURS

 DAY 天 DAYS

 MONTH 月 MONTHS

 YEAR 年 YEARS

 MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"

 HOUR_MINUTE 小时和分钟 "HOURS:MINUTES"

 DAY_HOUR 天和小时 "DAYS HOURS"

 YEAR_MONTH 年和月 "YEARS-MONTHS"

 HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS"

 DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"

 DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"

 expr中允许任何标点做分隔符,如果所有是DATE值时结果是一个DATE值,否则结果是一个DATETIME值)

 如果type关键词不完整,则MySQL从右端取值,DAY_SECOND因为缺少小时分钟等于MINUTE_SECOND)

 如果增加MONTH、YEAR_MONTH或YEAR,天数大于结果月份的最大天数则使用最大天数)

mysql SELECT "1997-12-31 23:59:59" INTERVAL 1 SECOND;

- 1998-01-01 00:00:00

mysql SELECT INTERVAL 1 DAY "1997-12-31";

- 1998-01-01

mysql SELECT "1998-01-01" - INTERVAL 1 SECOND;

- 1997-12-31 23:59:59

mysql SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 SECOND);

- 1998-01-01 00:00:00

mysql SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 DAY);

- 1998-01-01 23:59:59

mysql SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL "1:1" MINUTE_SECOND);

- 1998-01-01 00:01:00

mysql SELECT DATE_SUB("1998-01-01 00:00:00",INTERVAL "1 1:1:1" DAY_SECOND);

- 1997-12-30 22:58:59

mysql SELECT DATE_ADD("1998-01-01 00:00:00", INTERVAL "-1 10" DAY_HOUR);

- 1997-12-30 14:00:00

mysql SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);

- 1997-12-02

mysql SELECT EXTRACT(YEAR FROM "1999-07-02");

- 1999

mysql SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");

- 199907

mysql SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");

- 20102

TO_DAYS(date)

 返回日期date是西元0年至今多少天(不计算1582年以前)

mysql select TO_DAYS(950501);

- 728779

mysql select TO_DAYS('1997-10-07');

- 729669

FROM_DAYS(N)

 给出西元0年至今多少天返回DATE值(不计算1582年以前)

mysql select FROM_DAYS(729669);

- '1997-10-07'

本文来自CSDN博客,转载请标明出处:

Mysql按时间进行表分区

以下是创建一张测试表TEST并且按照时间CREATE_TIME创建RANGE分区,并使用ID创建hash分区,组成复合分区。

CREATE TABLE TEST (

CREATE_TIME DATETIME DEFAULT NULL, ID BIGINT(15) DEFAULT NULL

) ENGINE=INNODB DEFAULT CHARSET=utf8

PARTITION BY RANGE(TO_DAYS(CREATE_TIME)) PARTITIONS 7 SUBPARTITION BY HASH(ID) SUBPARTITIONS 16

(PARTITION P1710 VALUES LESS THAN (TO_DAYS ('2017-10-01'))

(SUBPARTITION P1710sp0 ,SUBPARTITION P1710sp1 ,

SUBPARTITION P1710sp2 ,SUBPARTITION P1710sp3 ,

SUBPARTITION P1710sp4 ,SUBPARTITION P1710sp5 ,

SUBPARTITION P1710sp6 ,SUBPARTITION P1710sp7 ,

SUBPARTITION P1710sp8 ,SUBPARTITION P1710sp9 ,

SUBPARTITION P1710sp10 ,SUBPARTITION P1710sp11 ,

SUBPARTITION P1710sp12 ,SUBPARTITION P1710sp13 ,

SUBPARTITION P1710sp14 ,SUBPARTITION P1710sp15 ),

PARTITION P1711 VALUES LESS THAN (TO_DAYS ('2017-11-01'))

(SUBPARTITION P1711sp0 ,SUBPARTITION P1711sp1 ,

SUBPARTITION P1711sp2 , SUBPARTITION P1711sp3 ,

SUBPARTITION P1711sp4 , SUBPARTITION P1711sp5 ,

SUBPARTITION P1711sp6 , SUBPARTITION P1711sp7 ,

SUBPARTITION P1711sp8 , SUBPARTITION P1711sp9 ,

SUBPARTITION P1711sp10 , SUBPARTITION P1711sp11 ,

SUBPARTITION P1711sp12 , SUBPARTITION P1711sp13 ,

SUBPARTITION P1711sp14 , SUBPARTITION P1711sp15 ),

mysql怎样用时间区间分组

SELECT uptime, CASE WHEN datepart(hour,uptime) IN (0,1) THEN 1 

WHEN datepart(hour,uptime) IN (2,3) THEN 2

WHEN datepart(hour,uptime) IN (4,5) THEN 3

WHEN datepart(hour,uptime) IN (6,7) THEN 4

WHEN datepart(hour,uptime) IN (8,9) THEN 5

WHEN datepart(hour,uptime) IN (10,11) THEN 6

WHEN datepart(hour,uptime) IN (12,13) THEN 7

WHEN datepart(hour,uptime) IN (14,15) THEN 8

WHEN datepart(hour,uptime) IN (16,17) THEN 9

WHEN datepart(hour,uptime) IN (18,19) THEN 10

WHEN datepart(hour,uptime) IN (20,21) THEN 11

WHEN datepart(hour,uptime) IN (22,23) THEN 12

ELSE 0 END AS sq

FROM bak_dircost0901

-------------------------------

uptime sq

2014/8/19 9:20:59 5

2014/8/22 20:31:20 11

2014/8/22 20:33:08 11

2014/8/26 13:48:01 7

2014/8/27 16:10:45 9


网页标题:mysql怎么分时间段,mysql 时间段
转载来于:http://pwwzsj.com/article/hesipc.html