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;
查询结果如下:
热门推荐
李清照《一剪梅》中的古典诗词元素探析
李清照与陈玉贞:两位才女如何演绎《一剪梅》?
一剪梅:从友谊之花到文化符号
开封府:千年古衙,正义永存
开封府冬日探秘:门票优惠+精彩表演
开封府联票大揭秘:省钱攻略来了!
开封府门票优惠全攻略:学生半价、老人免费,还有这些隐藏福利!
“悼襄”:一个承载哀思与敬意的谥号
蓝牙4.0、4.2、5.0、5.1、5.2、5.3速度分别是多少
人教版九年级物理:电学词汇大揭秘!
人教版九年级物理上册:第十五章《电流和电路》高效复习指南
人教版九年级物理第15章电学知识点大揭秘!
后羿攻速暴击流,王者峡谷新宠儿!
S35新赛季后羿攻速流玩法大揭秘!
寇世勋主演《一剪梅》再掀回忆杀:一段跨越35年的经典传奇
从李清照到费玉清:《一剪梅》的跨时代魅力
泰国小邓丽君朗嘎拉姆:一曲《一剪梅》唱响中国好声音
深度对比:雪燕与金盏燕窝的口感、营养及食用体验,哪个更胜一筹?
AI如何改变你的胃镜体验?
无痛胃镜:守护你的消化道健康
消化内科医生详解:胃镜检查全流程及注意事项
地球也许可以逃脱未来“膨胀太阳”的吞噬
火星引力或大到足以搅动地球海洋
移民火星大畅想,未来的火星生活是这样的!
教会孩子保护自己!赣州石城开展公益活动助力儿童安全
秋冬户外活动指南:拥抱自然,享受运动
蜘蛛在生态系统中的作用:揭开其对环境的重要性
掌握冰箱档位调节,让食材保鲜更节能
你家冰箱调对了吗?省电又长寿的小窍门
从民族文化到人类共同价值:走向世界的中国春节