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

     更新时间:2019年07月17日 11:05:40   作者:一只怀揣IT梦想的蜗牛   我要评论

    这篇文章主要介绍了Mysql时间轴数据 获取同一天数据的前三条 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    创建表数据

    CREATE TABLE `praise_info` (
     `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
     `pic_id` varchar(64) DEFAULT NULL COMMENT '?#35745;琁D',
     `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='?#35745;?#34920;';

      添加数据省略

      时间轴前2条数据

    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 生成 时间轴

    DROP PROCEDURE IF EXISTS pro_dim_date;
    [email protected]
    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

    调用:

    CALL pro_dim_date('2005-01-01','2013-12-31')

    结果:

    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日  是

    表结构:

    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时间轴数据 获取同一天数据的前三条,希望对大家有所帮助,如果大家有任?#25105;?#38382;请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    相关文章

    最新评论

    山东群英会开奖查询
      1. 山西11选5任5遗漏 山东时时彩官网地址 竞彩足球比分4x1 北单开奖sp时间 江苏e球彩走势图奖金表 河南泳坛夺金玩法图示 新疆25选7开奖结果 彩票店经营新思路 吉林快3基本和值遗漏 快乐十分统计器 福彩开奖结果百度图片搜索 搜狐彩票频道 江苏7位数玩法说明 七星彩走势图12042 香港赛马会排位表 资料排位表