MySQL中BETWEEN AND的基本用法与范围查询详解
创作时间:
作者:
@小白创作中心
MySQL中BETWEEN AND的基本用法与范围查询详解
引用
CSDN
1.
https://blog.csdn.net/m0_74823842/article/details/145195112
BETWEEN AND是MySQL中常用的范围查询操作符,可以用于数值、日期等类型的字段查询。本文将详细介绍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;
查询结果如下:
热门推荐
《尼尔机械纪元》世界观解析(深入解读游戏设定与剧情背景)
公司老板挪用资金时,财务人员的责任认定
社会组织助力贫困地区发展的成功案例
舌苔脱落一块一块的是什么原因
根据游戏需求选择显卡的决策框架与实操指南
房贷年限如何选择?这种选择的长期影响和财务规划如何?
什麼是「病嬌」?為何很多人喜歡病嬌?病嬌真實案例
过程与时间解析!牙齿矫正的过程一般要多久?要多久才能拿掉?时长因个体差异而异!
心脏不好的人,身体会“撒谎”!这8个预警信号一出现,千万别拖着
虚拟机如何装双显卡
老年人手抖是什么原因引起的,怎么治疗
小机箱也能吃鸡!最强小型游戏主机配置推荐攻略
现实的昆仑与神话的昆仑
生活科普|胃酸反流!你以为的缓解“妙招”,可能是雷区
理论学习|教师应该掌握的12种理论之七:艾宾浩斯遗忘曲线理论
如何让除湿机直接排水呢?
电子秤校准周期优化:提升效率的5大策略与最佳实践
主板上的南桥与北桥:从历史到现状的演变
主板北桥芯片和南桥芯片的作用和区别详解
开国上将的武力值,大概可以划分为三个等级,入选者都有谁?
基于大数据的舆情分析系统架构(架构篇)
赵云说糜夫人自杀,刘备为何会相信赵云一面之词
金融行业的证书含金量,解锁职业发展的金钥匙
舌战群儒:诸葛亮的智慧与勇气
重庆“胖猫”事件续:超90吨外卖曾堆满长江大桥,办案民警遭网暴
培训表达方式的艺术与技巧
特殊教育空间中的无障碍设计论文
奥楚蔑洛夫为什么要脱军大衣?——对变色龙中这一细节的深入剖析
孩子感冒发烧,小儿氨酚黄那敏颗粒,你真的用对了吗?
国网315投诉网站是什么?深度解析其法律意义及消费者权益保障