MySQL中between and的基本用法、范围查询
创作时间:
作者:
@小白创作中心
MySQL中between and的基本用法、范围查询
引用
CSDN
1.
https://blog.csdn.net/weixin_49114503/article/details/143363267
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;
查询结果如下:
热门推荐
交流电的周期、频率、瞬时值、有效值、相位、相位差概念
陷入怪圈:希腊住房成本连续七年欧盟居首,雅典及周边52万套房却空置
钠钙交换体(Na+/Ca2+ Exchangers,NCX)的简介及研究工具
花萼楼:广东最大的民居古建筑
以身作则,引领青少年探索广阔天地,构建积极社交圈
掌握这8大秘诀,轻松选购安全可靠的新能源汽车
《西游记》中,孙悟空为什么要灭火焰山的火?
深入探讨英语介词“at”的多种用法及其表达魅力
如何拍出美丽的雨丝:从设备到后期的全方位摄影指南
姜夔《扬州慢》:词中的音乐与情思
结婚吉日选择指南,八字命理与黄道吉日的完美融合
十年磨一剑,新作《失落之魂》发布预告片和Steam页面,明年发售
社保补缴指南:补缴是否算连续?需要哪些材料?
媒体评科比历史排名第八!杜兰特超越库里的原因分析
广东普通专升本要不要“二战”?“二战”该如何准备?
如何对团队实行目标激励
社保缴纳记录能否作为劳动关系的证据?专业律师为您解答
Win10蓝屏进入安全模式修复教程,轻松搞定系统故障
这些常喝的饮品,痛风患者能不能喝?一张清单告诉你
环境与气候治理研讨:可再生能源的环境可持续性
百年巨匠|吴昌硕:文人画最后的高峰
肺结节真的可以一消了之?“消融治疗”可以替代外科手术吗?
心静则万病息,这几种方法能使人心静下来
【交通安全】这些出行安全要点,你都掌握了吗?
宠物护理指南(小猫误食肥皂的预防与应急处理)
54岁的农民歌手朱之文,如今已走上了新的道路
鼻中隔偏曲能矫正吗
伊势尼鱼钩 优缺点 尺寸表 适合钓什么鱼
高考复读生如何在确保身体健康的同时提高学习效率?
卧室门宽度一般是多少,卧室门怎么选择比较好