阜新市网站建设,做spa会所网站,阿里云虚拟主机怎么建设网站,搜索引擎优化营销文章目录 一、between and语法二、使用示例2.1、between and数值查询2.2、between and时间范围查询2.3、not between and示例 BETWEEN AND操作符可以用于数值、日期等类型的字段#xff0c;包括边界值。
一、between and语法
MySQL中的BETWEEN AND操作符用于在两个值之间选择… 文章目录 一、between and语法二、使用示例2.1、between and数值查询2.2、between and时间范围查询2.3、not between and示例 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:ssbetween ‘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;查询结果如下