0


‌MySQL中‌between and的基本用法‌、范围查询

文章目录

BETWEEN AND操作符可以用于

数值、日期

等类型的字段,

包括边界值

一、between and语法

MySQL中的

BETWEEN AND

操作符用于在两个值之间选择数据,

包括边界值

。其基本语法如下:

[NOT]BETWEEN 取值1AND 取值2

其中:

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

使用场景:
between…and的使用一般有两种情况,一个是

数值范围

,一个是

时间范围


当查询时间范围时要注意可能会遇到时间精度问题,具体参考下面示例。

二、使用示例

数据准备

createtableuser(
       id intNOTNULLauto_incrementprimarykeycomment'主键id',`name`varchar(10)NULLcomment'姓名',
       age intNULLcomment'年龄',
       salary intNULLcomment'工资',
       create_time datetimecomment'创建时间戳');insertintouser(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*fromuserwhere age between24and25;
等同于
select*fromuserwhere age >=24and 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*fromuserwhere create_time between'2024-10-29'and'2024-10-30';
等同于
select*fromuserwhere 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*fromuserwhere create_time between'2024-10-29 00:00:00'and'2024-10-30 23:59:59';
等同于
select*fromuserwhere 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*fromuserwhere age notbetween24and25;
等同于
select*fromuserwhere age <24or age >25;

查询结果如下:
在这里插入图片描述

标签: between and用法

本文转载自: https://blog.csdn.net/weixin_49114503/article/details/143363267
版权归原作者 五月天的尾巴 所有, 如有侵权,请联系我们删除。

“‌MySQL中‌between and的基本用法‌、范围查询”的评论:

还没有评论