‌MySQL中‌between and的基本用法‌操作方法!

‌MySQL中‌between and的基本用法‌操作方法!

本文主要介绍了MySQL中BETWEEN AND操作符的基本用法,包括数值查询和时间范围查询,同时还详细解释了NOT BETWEEN AND的使用方法,并通过实例进行了详细的演示,其中,BETWEEN AND可以用于数值、日期等类型的字段,包括边界值。

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

一、between and语法

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

1
[NOT] BETWEEN 取值1 AND 取值2

其中:

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

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

二、使用示例

数据准备

1
2
3
4
5
6
7
8
9
10
11
12
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');

表数据如下

2024103115425723

2.1、between and数值查询

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

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

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

查询结果如下:

pAjGOc4.png

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类型查询不带时分秒

1
2
3
4
-- 查询用户表中创建时间在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';

查询结果:

pAjG7NV.png

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

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

正确示例

1
2
3
4
-- 查询用户表中创建时间在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';

查询结果:

pAjGTA0.png

2.3、not between and示例

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

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

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

查询结果如下:

pAjGWcQ.png

到此这篇关于‌MySQL中‌between and的基本用法‌的文章就介绍到这了。

 

 

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

Excelbook.cn Excel技巧 SQL技巧 Python 学习!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需99元,即可下载本站文章涉及的文件和软件。

文章版权声明 1、本网站名称:Excelbook
2、本站永久网址:http://www.excelbook.cn
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长王小琥进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

THE END
分享
二维码
< <上一篇
下一篇>>