我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中BETWEEN AND(范围查询)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL中BETWEEN AND(范围查询)

MySQL 提供了 BETWEEN AND 关键字,用来判断字段的数值是否在指定范围内。

BETWEEN AND 需要两个参数,即范围的起始值和终止值。如果字段值在指定的范围内,则这些记录被返回。如果不在指定范围内,则不会被返回。

最近使用between and 去查询数据,但是在时间的临界点有一些问题,所以记录一下。

使用 BETWEEN AND 的基本语法格式如下:

[NOT] BETWEEN 取值1 AND 取值2

其中:

  • NOT:可选参数,表示指定范围之外的值。如果字段值不满足指定范围内的值,则这些记录被返回。
  • 取值1:表示范围的起始值。
  • 取值2:表示范围的终止值。

BETWEEN AND 和 NOT BETWEEN AND 关键字在查询指定范围内的记录时很有用。

准备:

SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for person-- ----------------------------DROP TABLE IF EXISTS `person`;CREATE TABLE `person`  (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `sex` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `age` int(11) NULL DEFAULT NULL,  `date_birth` datetime NULL DEFAULT NULL,  PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;-- ------------------------------ Records of person-- ----------------------------INSERT INTO `person` VALUES (1, '小明', '男', 21, '2001-02-02 12:29:30');INSERT INTO `person` VALUES (2, '小红', '女', 20, '2002-01-01 00:00:00');INSERT INTO `person` VALUES (3, '张三', '男', 22, '2002-01-01 00:00:01');INSERT INTO `person` VALUES (4, '李四', '男', 30, '1992-07-10 12:00:00');SET FOREIGN_KEY_CHECKS = 1;

可以看到这样一个表

在这里插入图片描述

前面说了格式为:[NOT] BETWEEN 取值1 AND 取值2

正常查询:包括取值1 到 包括取值2

举例:用bewteen查询age:15-21之间的

SQL:

SELECT* FROM`person` WHEREage BETWEEN 15 AND 21

结果:

idnamesexagedate_birth1小明男212001-02-02 12:29:302小红女202002-01-01 00:00:00

4.1 格式用 ‘年-月-日 时:分:秒’

如果用的是**‘年-月-日 时:分:秒’**查询,则也是左边包括右边也包括

举例:查询 date_birth:2001-01-01 00:00:00—2002-12-31 23:59:59

SQL:

SELECT* FROM`person` WHEREdate_birth BETWEEN '2001-01-01 00:00:00'AND '2002-12-31 23:59:59'
idnamesexagedate_birth1小明男212001-02-02 12:29:302小红女202002-01-01 00:00:003张三男222002-01-01 00:00:01

查询的为:2001和2002年生日

4.2 格式用 ‘年-月-日’

如果用的是**‘年-月-日’**查询,则也是左边包括右边只包括临界点。

临界点的意思就是:只包括AND后那一天的00:00:00这个点,这一天剩下的时间不在查询范围之内。

SQL:

SELECT* FROM`person` WHEREdate_birth BETWEEN '2001-01-01'AND '2002-01-01'

结果:

idnamesexagedate_birth1小明男212001-02-02 12:29:302小红女202002-01-01 00:00:00

查询的为:2001年的生日,和2002年01月01日00:00:00的生日

总的来说 BETWEEN AND 好用,但是要注意的点就是在查询datetime格式的临界点问题。

来源地址:https://blog.csdn.net/weixin_45909221/article/details/127710627

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL中BETWEEN AND(范围查询)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL中BETWEEN AND(范围查询)

0 写在前面 MySQL 提供了 BETWEEN AND 关键字,用来判断字段的数值是否在指定范围内。 BETWEEN AND 需要两个参数,即范围的起始值和终止值。如果字段值在指定的范围内,则这些记录被返回。如果不在指定范围内,则不会被返
2023-08-16

mysql中between的边界,范围说明

mysql between的边界范围 between 的范围是包含两边的边界值eg: id between 3 and 7 等价与 id >=3 and id<=7not between 的范围是不包含边界值eg:id not betwee
2022-05-30

SQL查询中between and和and的区别是什么

在SQL查询中,"between and"和"and"是两种不同的语法结构,具有不同的用途和效果。1. "between and":是用于指定一个范围的条件。它用于在查询中筛选出一个范围内的值。语法如下:```sqlSELECT colum
2023-08-19

MySQL中MRR如何优化范围查询

目录一、MRR优化概述二、MRR优化的背景三、MRR优化的原理四、MRR优化的优势五、磁盘预读机制六、局部性原理七、使用场景、条件与监控1. 配置参数2. 监控方法八、SQL案例解读一、MRR优化概述MRR,全称Multi-Range R
MySQL中MRR如何优化范围查询
2024-10-10

关于SQL查询的between and和两个and连接查询的区别

between and在SQL查询中是用来指定一个范围的条件。它可以在查询中使用两个值之间的范围来筛选结果。例如,以下查询将返回在2019年1月1日至2019年12月31日期间的所有订单:```SELECT * FROM ordersWHE
2023-08-19

mybatis 时间范围查询

mybatis框架支持直接用>=或 and timer.create_time >= #{startTime} and timer.create_time 问题:开始时间和结束时间是同一个日期,就查不出来 解决方法:用DA
2023-08-16

MySQL时间范围查询实践与技巧

MySQL时间范围查询实践与技巧在实际开发中,时间范围查询是数据库操作中常见的需求之一。MySQL作为流行的开源关系型数据库管理系统,在处理时间范围查询时提供了多种灵活实用的功能和技巧。本文将介绍MySQL时间范围查询的实践方法和相关技巧
MySQL时间范围查询实践与技巧
2024-03-01

Java 中 BigDecimal 比较能否进行范围查询?(Java BigDecimal比较能否进行范围查询)

在Java编程中,BigDecimal是用于高精度十进制计算的类。当涉及到比较BigDecimal数值并判断是否在某个范围内时,这是一个常见的需求,但同时也可能会带来一些挑战。BigDecimal类提供了多种比较方法,如compareTo()方法,用于比较两个
Java 中 BigDecimal 比较能否进行范围查询?(Java BigDecimal比较能否进行范围查询)
Java2024-12-20

php怎么查询时间范围

php查询时间范围的方法:1、创建一个PHP示例文件;2、通过“function checkIsBetweenTime($start,$end){...}”方法判断是否在指定时间段范围内即可。
2021-06-08

oracle怎么查询时间范围

oracle 中,查询时间范围可使用:between/not between:检查值是否在/不在指定时间范围内操作符:>=(大于或等于)、Oracle 中查询时间范围Oracle 提供了多种函数和操作符,可用于查询和操作时间范围。函数B
oracle怎么查询时间范围
2024-05-13

php如何查询时间范围

小编今天带大家了解php如何查询时间范围,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“php如何查询时间范围”的知识吧。php查询时
2023-06-26

oracle 查询指定时间范围

语法:“select*from 表名 where 字段 between to_date(起始时间,起始时间格式) and to_date(终止时间,终止时间格式)” 范例:查询自1997/02/03到2000/02/03期间出生的人员。 s
2023-08-17

MySQL范围查询优化的场景实例详解

目录思考题范围查询-基础场景一: a = 1 and b = 2 and c = 3场景二: a > 1 and b = 2场景三:a > 1 and b = 2 and c > 3编程客栈场景四: a > 1 ORDER BY b场景五:
2022-06-13

mongodb的距离范围如何查询

在MongoDB中,可以使用`$geoNear`运算符和`$geoWithin`运算符来进行距离范围查询。1. 使用`$geoNear`运算符进行距离排序和筛选:```javascriptdb.collection.aggregate([{
2023-09-01

mysql 根据时间范围查询数据的操作方法

在MySQL中查询特定时间范围的数据至关重要。本文介绍了根据时间范围查询数据的四种方法:使用日期和时间列、范围运算符、BETWEEN语句和IN语句。此外,还提供了性能优化建议,例如创建索引、使用覆盖索引和分页。了解这些方法和最佳实践对于高效访问和管理时间相关数据至关重要。
mysql 根据时间范围查询数据的操作方法
2024-04-02

mysql 根据时间范围查询数据的操作方法

目录1.查询指定日期的数据:2.查询指定日期范围的数据:3.查询指定时间范围的数据:javascript4.查询指定日期和时间范围的数据:你可以使用mysql的SELECT语句结合WHERE子句来根据时间范围查询数据。下面是一些常见的时间范
mysql 根据时间范围查询数据的操作方法
2024-01-30

编程热搜

目录