mysql查询时间区间的数据
前言最近在做项目涉及到Mysql的复杂日期查询,日期查询其实在数据库中查询其实还是用得挺多的,比如查询开始日期到结束日期的区间信息,查询日期小于有效日期的信息,查询当天的日期,明天的日期,做比较等。查...
2024.11.15Bili今天做汽车gps定位时写了一段获取最新位置的sql语句,对于新手MySQL学
习及领悟很有帮助,就分享给大家了!!
由于保密条例的限制,只能找其他例子给大家讲了
我们在查询数据时,需要分组后取每组中的最新一条数据(即时间最大的那条)
复制如下 sql 语句建表,添加数据/*Navicat MySQL Data TransferSource Server : localhostSource Server Version : 50719Source Host : localhost:3306Source Database : jinguiTarget Server Type : MYSQLTarget Server Version : 50719File Encoding : 65001Date: 2019-10-06 14:35:57*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for test-- ----------------------------drop TABLE IF EXISTS `test`;CREATE TABLE `test` ( `id` int(11) NOT NULL, `company_name` varchar(255) DEFAULT NULL, `type` varchar(255) DEFAULT NULL, `create_date` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records of test-- ----------------------------insert INTO `test` VALUES (‘1‘, ‘腾讯‘, ‘1‘, ‘2019-10-06 14:06:48‘);insert INTO `test` VALUES (‘2‘, ‘阿里巴巴‘, ‘1‘, ‘2019-10-18 14:35:11‘);insert INTO `test` VALUES (‘3‘, ‘百度‘, ‘1‘, ‘2019-10-06 14:35:16‘);insert INTO `test` VALUES (‘4‘, ‘小米‘, ‘0‘, ‘2019-10-26 14:35:20‘);insert INTO `test` VALUES (‘5‘, ‘华为‘, ‘0‘, ‘2019-10-06 14:35:25‘);insert INTO `test` VALUES (‘6‘, ‘农业银行‘, ‘2‘, ‘2019-10-06 14:35:28‘);insert INTO `test` VALUES (‘7‘, ‘工商银行‘, ‘2‘, ‘2019-10-10 14:35:32‘);insert INTO `test` VALUES (‘8‘, ‘兴业银行‘, ‘2‘, ‘2019-10-23 14:35:36‘);insert INTO `test` VALUES (‘9‘, ‘浦发银行‘, ‘3‘, ‘2019-10-06 14:35:40‘);insert INTO `test` VALUES (‘10‘, ‘贵州茅台‘, ‘3‘, ‘2019-10-06 14:35:44‘);建表如下查询思路: 先分组使用 max() 函数查询出每组中最大的时间和类型,将时间字段和类型字段定义为一个新表 tmp,再通过与 tmp 表的时间和类型联合查询,即可查询出每组中的最新一条数据(时间最大的那条数据)。之所以要使用时间和类型两个字段,是因为可能存在不同类型但时间相同的数据
sql 语句如下select * from test t RIGHT JOIN (select type, MAX(create_date) as "createDate" from test GROUP BY type) tmp on (t.create_date = tmp.createDate and t.type=tmp.type)查询结果前言最近在做项目涉及到Mysql的复杂日期查询,日期查询其实在数据库中查询其实还是用得挺多的,比如查询开始日期到结束日期的区间信息,查询日期小于有效日期的信息,查询当天的日期,明天的日期,做比较等。查...
2024.11.151、mysql分组取每组前三条记录#根据订单号(order_no)分组,每个订单取3个订单明细select *FROM ( select *, ROW_NUMBER() OVER (PARTITION...
2024.11.121 背景作为在后端圈开车的多年老司机,是不是经常听到过,“mysql 单表最好不要超过2000w”,“单表超过2000w 就要考虑数据迁移了”,“你这个表数据都马上要到2000w 了,难怪查询速度慢”...
2024.11.15摘要:在Mysql数据库的管理与应用过程中,不可避免的需要接触到各种各样的数据类型,其中时间数据是最复杂多样的。为了满足各种各样的需求,需要定制不同的时间转换格式,有些会放到服务器程序上,通过代码实现...
2024.11.121、首先新建一张带时间字段的测试表:tb_testCREATE TABLE `tb_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` ...
2024.11.06