Mysql Timeline Data Get the first three pieces of data on the same day

  • 2021-12-05 07:44:36
  • OfStack

Create table data


CREATE TABLE `praise_info` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
 `pic_id` varchar(64) DEFAULT NULL COMMENT ' Picture ID',
 `created_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT ' Creation time ',
PRIMARY KEY (`id`),
 KEY `pic_id` (`pic_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3647 DEFAULT CHARSET=utf8 COMMENT=' Picture table ';

Add data ellipsis

The first two data of timeline


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: Let's take a look at the MySQL generation timeline


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),' Year '),
QUARTER(var),
CONCAT(QUARTER(var),' Quarterly '),
DATE_FORMAT(var,'%Y%m'),
CONCAT(YEAR(var),' Year ',MONTH(var),' Month '),
CONCAT(MONTH(var),' Month '),
MONTH(var),
WEEKDAY(var),
CASE WEEKDAY(var) WHEN 0 THEN ' Week 1' WHEN 1 THEN ' Week 2' WHEN 2 THEN ' Week 3' WHEN 3 THEN ' Week 4' WHEN 4 THEN ' Week 5' WHEN 5 THEN ' Week 6' WHEN 6 THEN ' Sunday ' END,
WEEKOFYEAR(var),
CONCAT(' No. 1 ',WEEKOFYEAR(var),' Week (',MONTH(bweek),' Month ',DAY(bweek),' Day ~',MONTH(eweek),' Month ',DAY(eweek),' Day '),
CASE WHEN WEEKDAY(var)>4 THEN ' Yes ' ELSE ' No ' END
);
SET var=DATE_ADD(var,INTERVAL 1 DAY);
END WHILE;
END

Call:


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

Results:


20131217  2013-12-17 17 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 1   Week 2 51  No. 1 51 Week (12 Month 11 Day ~12 Month 23 Day   No 
20131218  2013-12-18 18 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 2   Week 3 51  No. 1 51 Week (12 Month 12 Day ~12 Month 24 Day   No 
20131219  2013-12-19 19 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 3   Week 4 51  No. 1 51 Week (12 Month 13 Day ~12 Month 25 Day   No 
20131220  2013-12-20 20 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 4   Week 5 51  No. 1 51 Week (12 Month 14 Day ~12 Month 26 Day   No 
20131221  2013-12-21 21 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 5   Week 6 51  No. 1 51 Week (12 Month 15 Day ~12 Month 27 Day   Yes 
20131222  2013-12-22 22 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 6   Sunday  51  No. 1 51 Week (12 Month 16 Day ~12 Month 28 Day   Yes 
20131223  2013-12-23 23 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 0   Week 1 52  No. 1 52 Week (12 Month 17 Day ~12 Month 29 Day   No 
20131224  2013-12-24 24 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 1   Week 2 52  No. 1 52 Week (12 Month 18 Day ~12 Month 30 Day   No 
20131225  2013-12-25 25 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 2   Week 3 52  No. 1 52 Week (12 Month 19 Day ~12 Month 31 Day   No 
20131226  2013-12-26 26 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 3   Week 4 52  No. 1 52 Week (12 Month 20 Day ~1 Month 1 Day    No 
20131227  2013-12-27 27 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 4   Week 5 52  No. 1 52 Week (12 Month 21 Day ~1 Month 2 Day    No 
20131228  2013-12-28 28 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 5   Week 6 52  No. 1 52 Week (12 Month 22 Day ~1 Month 3 Day    Yes 
20131229  2013-12-29 29 2013  2013 Year   4  4 Quarterly  201312 2013 Year 12 Month   12 Month  12 6   Sunday  52  No. 1 52 Week (12 Month 23 Day ~1 Month 4 Day    Yes 

Table structure:


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 Year ',
&nbsp; `quarter_id` int(11) DEFAULT NULL COMMENT '2',
&nbsp; `quarter_name` varchar(16) DEFAULT NULL COMMENT '2 Quarterly ',
&nbsp; `month_id` int(11) DEFAULT NULL COMMENT '5',
&nbsp; `month_name` varchar(16) DEFAULT NULL COMMENT '5 Month ',
&nbsp; `month_of_year_name` varchar(16) DEFAULT NULL COMMENT '2011 Year 5 Month ',
&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(' No ',' Yes ') DEFAULT NULL COMMENT ' Is it weekend ',
&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

Summarize


Related articles: