MySQL中between and的基本用法、范围查询示例详解

 更新时间:2025年12月05日 11:53:16   作者:L***8653  
BETWEEN AND 操作符在 MySQL 中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用 BETWEEN AND 和 NOT BETWEEN AND 进行查询,并特别注意日期类型查询时的时间精度问题,感兴趣的朋友跟随小编一起看看吧

BETWEEN AND操作符可以用于数值、日期等类型的字段,包括边界值

一、between and语法

MySQL中的BETWEEN AND操作符用于在两个值之间选择数据,包括边界值。其基本语法如下:

[NOT] BETWEEN 取值1 AND 取值2

其中:

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

使用场景:
between…and的使用一般有两种情况,一个是数值范围,一个是时间范围
当查询时间范围时要注意可能会遇到时间精度问题,具体参考下面示例。

二、使用示例

数据准备

create table user(
       id int NOT NULL auto_increment primary key comment '主键id',
       `name` varchar(10) NULL comment '姓名',
       age int NULL comment '年龄',
       salary int NULL comment '工资',
       create_time datetime comment '创建时间戳'
);
insert into user(name,age,salary,create_time) values
('张三',23,100,'2024-10-29 10:01:22'),
('李四',24,200,'2024-10-30 09:44:22'),
('王五',25,300,'2024-10-30 10:01:22'),
('赵六',26,400,'2024-10-31 07:01:23');

表数据如下

2.1、between and数值查询

between…and…是支持数值查询的,当字段类型是数值时 between A and B等同于>=A and <=B

当between and用于数值查询时,常用于字段类型为int、decimal等。

-- 查询用户表中年龄在24到25之间的用户
select * from user where age between 24 and 25;
等同于
select * from user where age >= 24 and age <= 25;

查询结果如下:

2.2、between and时间范围查询

注意:

  • 当日期字段为date类型时,即时间格式为yyyy-MM-dd, between ‘2024-10-29’ and ‘2024-10-30’ 相当于>=‘2024-10-29’ and <=‘2024-10-30’
  • 当日期字段为datetime、timestamp类型时,即时间格式为yyyy-MM-dd HH:mm:ss,between ‘2024-10-29’ and ‘2024-10-30’ 相当于>=‘2024-10-29 00:00:00’ and <=‘2024-10-30 00:00:00’。所以当between and对datetime、timestamp类型查询时,一定要注意手动拼接时分秒,否则查询数据可能不符合预期。

先上一个错误示例:对datetime类型查询不带时分秒

-- 查询用户表中创建时间在2024-10-29到2024-10-30之间的数据
select * from user where create_time between '2024-10-29' and '2024-10-30';
等同于
select * from user where create_time >= '2024-10-29 00:00:00' and create_time  <= '2024-10-30 00:00:00';

查询结果:

从上面示例可以看出,还有两条数据时间是在2024-10-30日范围内,但是并没有被查询出来。

所以需要注意:当between and对datetime、timestamp类型查询时,一定要注意手动拼接时分秒,否则查询数据可能不符合预期。

正确示例

-- 查询用户表中创建时间在2024-10-29到2024-10-30之间的数据
select * from user where create_time between '2024-10-29 00:00:00' and '2024-10-30 23:59:59';
等同于
select * from user where create_time >= '2024-10-29 00:00:00' and create_time  <= '2024-10-30 23:59:59';

查询结果:

2.3、not between and示例

not between and表示指定范围之外的值。not between A and B相当于 < A or >B。

示例:查询年龄不在24到25之间的用户

-- 查询用户表中年龄不在24到25之间的用户
select * from user where age not between 24 and 25;
等同于
select * from user where age < 24 or age > 25;

查询结果如下:

到此这篇关于MySQL中between and的基本用法、范围查询示例详解的文章就介绍到这了,更多相关mysql between and用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Navicat如何通过ssh连接mysql

    Navicat如何通过ssh连接mysql

    文章介绍了通过SSH连接MySQL数据库的方法,强调了确保MySQL默认端口3306没有被防火墙阻拦,以及在Ubuntu系统中默认root的SSH是禁止的,应使用其他账户登录
    2025-02-02
  • MySQL数据库设计概念及多表查询和事物操作

    MySQL数据库设计概念及多表查询和事物操作

    数据库设计就是根据业务系统具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型,本文给大家介绍MySQL数据库设计概念及多表查询和事物操作,感兴趣的朋友一起看看吧
    2022-05-05
  • mysql密码忘了的问题及解决方案

    mysql密码忘了的问题及解决方案

    这篇文章主要介绍了mysql密码忘了的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • MySQL存储过程例子(包含事务,输出参数,嵌套调用)

    MySQL存储过程例子(包含事务,输出参数,嵌套调用)

    MySQL存储过程例子,包含事务,输出参数,嵌套调用,学习mysql存储过程的朋友可以参考下。
    2010-09-09
  • MySQL学习之事务详解

    MySQL学习之事务详解

    在数据库中 事务(transaction) 可以把多个SQL给打包到一起, 即将多个SQL语句变成一个整体, 也就是说一个事务中的所有操作要么全部成功执行, 要么完全不执行.本文主要来和大家聊聊事务的使用,需要的可以参考一下
    2022-12-12
  • MySQL教程彻底学懂存储过程

    MySQL教程彻底学懂存储过程

    这篇文章主要为大家介绍了MySQL系列的存储过程,文中详细的为大家解释存储过程的相关概念及用法语法,以及对存储过程的理解解析,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • MySQL 深分页查询优化实践与经验分享

    MySQL 深分页查询优化实践与经验分享

    文章总结了在企业级项目中优化深分页查询的经验,包括执行计划分析、索引优化和游标分页改写,通过复合索引和游标分页,可以显著提高查询性能,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • MySQL实现查询处理JSON数据的示例详解

    MySQL实现查询处理JSON数据的示例详解

    这篇文章主要为大家详细介绍了MySQL如何实现查询处理JSON数据,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
    2023-06-06
  • MySQL读写分离服务配置方式

    MySQL读写分离服务配置方式

    通过Mycat代理实现MySQL的读写分离涉及准备工作、配置文件修改、权限设置、启动方式选择等关键步骤,首先,安装JDK1.8并配置环境变量;接着,对Mycat的server.xml和schema.xml进行配置,特别是schema.xml中对数据库的配置需关注
    2024-11-11
  • MySQL中查询某一天, 某一月, 某一年的数据代码详解

    MySQL中查询某一天, 某一月, 某一年的数据代码详解

    本文通过实例代码给大家介绍了MySQL中, 如何查询某一天, 某一月, 某一年的数据 ,需要的朋友可以参考下
    2019-06-06

最新评论