创建表数据
1
2
3
4
5
6
7
|
CREATE TABLE `praise_info` (
`id` bigint (20) NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
`pic_id` varchar (64) DEFAULT NULL COMMENT '图片ID' ,
`created_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ,
PRIMARY KEY (`id`),
KEY `pic_id` (`pic_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3647 DEFAULT CHARSET=utf8 COMMENT= '图片表' ;
|
添加数据省略
时间轴前2条数据
1
2
3
4
5
6
7
|
SELECT * FROM
(
SELECT *, @num := if(@created_time = DATE_FORMAT(created_time, '%Y-%m-%d' ), @num := @num + 1, 1) as row_num,
@created_time := DATE_FORMAT(created_time, '%Y-%m-%d' ) as axisTime FROM praise_info
order by id desc
) AS temp
WHERE row_num < 3;
|
ps:下面看下MySQL 生成 时间轴
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
DROP PROCEDURE IF EXISTS pro_dim_date;
tudou@Gyyx
CREATE PROCEDURE pro_dim_date( IN bdate DATE , IN edate DATE )
BEGIN
DECLARE var DATE DEFAULT bdate;
DECLARE evar DATE DEFAULT DATE_ADD(edate,INTERVAL 1 DAY );
DECLARE bweek DATE ;
DECLARE eweek DATE ;
WHILE var<evar DO
SET bweek = DATE_ADD(DATE_SUB(var,INTERVAL 1 WEEK),INTERVAL 1 DAY );
SET eweek = DATE_SUB(DATE_ADD(var,INTERVAL 1 WEEK),INTERVAL 1 DAY );
INSERT INTO gyyx_report.dim_date
(
`date_id`,
`date_name`,
`date_of_month`,
`year_id`,
`year_name`,
`quarter_id`,
`quarter_name`,
`month_id`,
`month_name`,
`month_of_year_name`,
`month_of_year_id`,
`week_id`,
`week_name`,
`week_of_year_id`,
`week_of_year_name`,
`is_weekend`
)
VALUES
(
DATE_FORMAT(var, '%Y%m%d' ),
DATE_FORMAT(var, '%Y-%m-%d' ),
DAYOFMONTH(var),
YEAR (var),
CONCAT( YEAR (var), '年' ),
QUARTER(var),
CONCAT(QUARTER(var), '季度' ),
DATE_FORMAT(var, '%Y%m' ),
CONCAT( YEAR (var), '年' , MONTH (var), '月' ),
CONCAT( MONTH (var), '月' ),
MONTH (var),
WEEKDAY(var),
CASE WEEKDAY(var) WHEN 0 THEN '星期一' WHEN 1 THEN '星期二' WHEN 2 THEN '星期三' WHEN 3 THEN '星期四' WHEN 4 THEN '星期五' WHEN 5 THEN '星期六' WHEN 6 THEN '星期日' END ,
WEEKOFYEAR(var),
CONCAT( '第' ,WEEKOFYEAR(var), '周(' , MONTH (bweek), '月' , DAY (bweek), '日~' , MONTH (eweek), '月' , DAY (eweek), '日' ),
CASE WHEN WEEKDAY(var)>4 THEN '是' ELSE '否' END
);
SET var=DATE_ADD(var,INTERVAL 1 DAY );
END WHILE;
END
|
调用:
1
|
CALL pro_dim_date( '2005-01-01' , '2013-12-31' )
|
结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
20131217 2013-12-17 17 2013 2013年 4 4季度 201312 2013年12月 12月 12 1 星期二 51 第51周(12月11日~12月23日 否
20131218 2013-12-18 18 2013 2013年 4 4季度 201312 2013年12月 12月 12 2 星期三 51 第51周(12月12日~12月24日 否
20131219 2013-12-19 19 2013 2013年 4 4季度 201312 2013年12月 12月 12 3 星期四 51 第51周(12月13日~12月25日 否
20131220 2013-12-20 20 2013 2013年 4 4季度 201312 2013年12月 12月 12 4 星期五 51 第51周(12月14日~12月26日 否
20131221 2013-12-21 21 2013 2013年 4 4季度 201312 2013年12月 12月 12 5 星期六 51 第51周(12月15日~12月27日 是
20131222 2013-12-22 22 2013 2013年 4 4季度 201312 2013年12月 12月 12 6 星期日 51 第51周(12月16日~12月28日 是
20131223 2013-12-23 23 2013 2013年 4 4季度 201312 2013年12月 12月 12 0 星期一 52 第52周(12月17日~12月29日 否
20131224 2013-12-24 24 2013 2013年 4 4季度 201312 2013年12月 12月 12 1 星期二 52 第52周(12月18日~12月30日 否
20131225 2013-12-25 25 2013 2013年 4 4季度 201312 2013年12月 12月 12 2 星期三 52 第52周(12月19日~12月31日 否
20131226 2013-12-26 26 2013 2013年 4 4季度 201312 2013年12月 12月 12 3 星期四 52 第52周(12月20日~1月1日 否
20131227 2013-12-27 27 2013 2013年 4 4季度 201312 2013年12月 12月 12 4 星期五 52 第52周(12月21日~1月2日 否
20131228 2013-12-28 28 2013 2013年 4 4季度 201312 2013年12月 12月 12 5 星期六 52 第52周(12月22日~1月3日 是
20131229 2013-12-29 29 2013 2013年 4 4季度 201312 2013年12月 12月 12 6 星期日 52 第52周(12月23日~1月4日 是
|
表结构:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
CREATE TABLE `dim_date` (
`date_id` int (11) NOT NULL COMMENT '20110512' ,
`date_name` varchar (16) DEFAULT NULL COMMENT '2011-05-12' ,
`date_of_month` int (11) DEFAULT NULL COMMENT '12' ,
`year_id` int (11) DEFAULT NULL COMMENT '2011' ,
`year_name` varchar (16) DEFAULT NULL COMMENT '2011年' ,
`quarter_id` int (11) DEFAULT NULL COMMENT '2' ,
`quarter_name` varchar (16) DEFAULT NULL COMMENT '2季度' ,
`month_id` int (11) DEFAULT NULL COMMENT '5' ,
`month_name` varchar (16) DEFAULT NULL COMMENT '5月' ,
`month_of_year_name` varchar (16) DEFAULT NULL COMMENT '2011年5月' ,
`month_of_year_id` int (11) DEFAULT NULL COMMENT '201105' ,
`week_id` int (11) DEFAULT NULL ,
`week_name` varchar (16) DEFAULT NULL ,
`week_of_year_id` int (11) DEFAULT NULL ,
`week_of_year_name` varchar (32) DEFAULT NULL ,
`is_weekend` enum( '否' , '是' ) DEFAULT NULL COMMENT '是否周末' ,
PRIMARY KEY (`date_id`),
KEY `ix_dim_date_date_name` (`date_name`),
KEY `ix_dim_date_month_id` (`month_id`),
KEY `ix_dim_date_year_id` (`year_id`),
KEY `ix_dim_date_quanter_id` (`quarter_id`),
KEY `ix_dim_date_week_of_year_id` (`week_of_year_id`,`week_of_year_name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
总结
以上所述是小编给大家介绍的Mysql时间轴数据 获取同一天数据的前三条,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
原文链接:https://www.cnblogs.com/snail001/archive/2019/07/16/11194752.html