Mysql时间轴数据 获取同一天数据的前三条

吾爱主题 阅读:190 2024-04-05 14:22:02 评论:0

创建表数据

?
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` ( &nbsp; `date_id` int (11) NOT NULL COMMENT '20110512' , &nbsp; `date_name` varchar (16) DEFAULT NULL COMMENT '2011-05-12' , &nbsp; `date_of_month` int (11) DEFAULT NULL COMMENT '12' , &nbsp; `year_id` int (11) DEFAULT NULL COMMENT '2011' , &nbsp; `year_name` varchar (16) DEFAULT NULL COMMENT '2011年' , &nbsp; `quarter_id` int (11) DEFAULT NULL COMMENT '2' , &nbsp; `quarter_name` varchar (16) DEFAULT NULL COMMENT '2季度' , &nbsp; `month_id` int (11) DEFAULT NULL COMMENT '5' , &nbsp; `month_name` varchar (16) DEFAULT NULL COMMENT '5月' , &nbsp; `month_of_year_name` varchar (16) DEFAULT NULL COMMENT '2011年5月' , &nbsp; `month_of_year_id` int (11) DEFAULT NULL COMMENT '201105' , &nbsp; `week_id` int (11) DEFAULT NULL , &nbsp; `week_name` varchar (16) DEFAULT NULL , &nbsp; `week_of_year_id` int (11) DEFAULT NULL , &nbsp; `week_of_year_name` varchar (32) DEFAULT NULL , &nbsp; `is_weekend` enum( '否' , '是' ) DEFAULT NULL COMMENT '是否周末' , &nbsp; PRIMARY KEY (`date_id`), &nbsp; KEY `ix_dim_date_date_name` (`date_name`), &nbsp; KEY `ix_dim_date_month_id` (`month_id`), &nbsp; KEY `ix_dim_date_year_id` (`year_id`), &nbsp; KEY `ix_dim_date_quanter_id` (`quarter_id`), &nbsp; 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

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容