MySQL中between and的基本用法
创作时间:
作者:
@小白创作中心
MySQL中between and的基本用法
引用
CSDN
1.
https://m.blog.csdn.net/m0_74825409/article/details/145642045
本文将详细介绍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;
查询结果如下:
热门推荐
权限、位置、口令、加密、行踪……网警带来个人隐私保护全攻略!
反诈骗协调中心:警惕假冒微信支付宝客服诈骗
运河之都济宁,这七处必打卡旅游景点最济州
从央视主持到跑步爱好者,欧阳夏丹的生活新态度:跑步是最顶级的自律
欧阳夏丹:从央视主播到教育主播的转型之路
欧阳夏丹现已成功转型,现状如何了
16升燃气热水器选购攻略:适用场景、品牌推荐与购买注意事项
燃气热水器安装避坑指南:通风和安全最重要
多点用水家庭必备:恒温燃气热水器选购指南
海南红树林旅游攻略:生态观光与海滨度假完美结合
全球35%红树林消失,这个“海岸卫士”亟待保护
全球红树林现状堪忧:40%已受保护,但半数或于2050年前崩溃
一个聚餐引发的思考:没有规矩,孩子何以成人
新时代家庭文明建设:从爱国守法到绿色节俭
康复新液:从蟑螂到修复溃疡的秘密
雪燕不是燕窝,这些功效与食用禁忌需谨记
雪燕、桃胶和皂角米:功效与食用注意事项
蟑螂:生态系统中的超级清道夫
手电钻、锂电池怎么上飞机?民航安检规定来了
手电钻乘机规定:只能托运,锂电池需特殊处理
手电钻安全使用与维护保养指南
多地发布2024年度社保缴费基数调整通知
蓝莓香蕉黄金搭档:4种创意吃法,营养美容两不误
癫痫病能吃生力片吗
四味药解三脏寒:吴茱萸汤的中医智慧与现代研究
“体贴”与“穿透”:王蒙的红楼梦评点方法论
红枫花开:解读中国特有树种的文化内涵与现代价值
解码《霸道宠到底》:情感创新成就爆款言情
用《红楼梦》的笔法写言情:从贾宝玉到现代男主
栖息地丧失致数量锐减,北美红头啄木鸟亟待保护