当前位置: 首页 > 编程笔记 >

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

乐成济
2023-03-14
本文向大家介绍Mysql时间轴数据 获取同一天数据的前三条,包括了Mysql时间轴数据 获取同一天数据的前三条的使用技巧和注意事项,需要的朋友参考一下

创建表数据

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条数据

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;
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

调用:

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

 类似资料:
  • 问题内容: 我试图在相同的数据上有两个轴。 数据是一对。情节是a ,我有两个和一个。 对于y值,所有数据均以米为单位,我希望有一个轴以米为单位显示该轴,以英尺为单位显示该数据。现在,这感觉很普通,但是我无法决定最明显的方法。一种有效的方法是复制数据并以英尺为单位设置y值,然后添加另一个并完成该操作。 但是我认为,子类化或向其注入一些功能以缩放值会更明智。还是我应该采用第一种方法? 你怎么看? 问题

  • 我试图在相同的数据上有两个轴。 数据是两个。该图是,我有两个和一个。 所有的数据是以米为y值,我想有一个轴显示它在米和一个轴显示它在英尺。现在这感觉像是一件常见的事情做,但我不能决定最明显的方式来做它。一种可行的方法是复制数据,并在脚中使用Y值,然后添加另一个并使用它。 但是我认为更明智的做法是将子类化,或者在中注入一些功能来缩放值。还是我应该采用第一种方法? 你觉得呢?

  • 本文向大家介绍mysql 获取规定时间段内的统计数据,包括了mysql 获取规定时间段内的统计数据的使用技巧和注意事项,需要的朋友参考一下 mysql 获取规定时间段内的统计数据 按年统计 按月统计 具体变换可以自己根据需求变更 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 问题内容: 我有一个MySQL表,其中记录了员工的登录和注销时间。在“输入输出”列中,“ 1”代表登录,“ 0”代表退出。 是否可以使用单个查询检索用户一天中的总工作时间? 我尝试了很多,但都徒劳无功。我可以使用数组在PHP中执行此操作,但无法使用单个查询来执行此操作。 问题答案: (1-2 * in_out)项给每个登录事件一个-1因子,每个退出事件一个+1因子。该函数获取列的总和,然后GROU

  • 是否有任何方法可以获得一个DataFrame的当前分区数?我检查了DataFrame javadoc(spark 1.6)但没有找到一个方法,或者我只是错过了它?(对于JavaRDD,有一个getNumPartitions()方法。)