最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中between and的基本用法詳解

 更新時間:2026年03月15日 15:21:15   作者:pangares  
文章介紹了MySQL中的BETWEEN AND操作符,它可以用于數(shù)值和日期類型的字段,包括邊界值,通過示例展示了如何使用BETWEEN AND進(jìn)行數(shù)值查詢和時間查詢,并強(qiáng)調(diào)了在處理datetime和timestamp類型時需要注意時間精度問題,需要的朋友可以參考下

BETWEEN AND操作符可以用于數(shù)值、日期等類型的字段,包括邊界值。

一、between and語法

MySQL中的BETWEEN AND操作符用于在兩個值之間選擇數(shù)據(jù),包括邊界值。其基本語法如下:

[NOT] BETWEEN 取值1 AND 取值2

其中:

  • NOT:可選參數(shù),表示指定范圍之外的值。如果字段值不滿足指定范圍內(nèi)的值,則這些記錄被返回。
  • 取值1:表示范圍的起始值。
  • 取值2:表示范圍的終止值。

使用場景:
between…and的使用一般有兩種情況,一個是數(shù)值范圍,一個是時間范圍。
當(dāng)查詢時間范圍時要注意可能會遇到時間精度問題,具體參考下面示例。

二、使用示例

數(shù)據(jù)準(zhǔn)備

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 '創(chuàng)建時間戳'
);

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');

表數(shù)據(jù)如下

2.1、between and數(shù)值查詢

between…and…是支持?jǐn)?shù)值查詢的,當(dāng)字段類型是數(shù)值時 between A and B等同于>=A and <=B

當(dāng)between and用于數(shù)值查詢時,常用于字段類型為int、decimal等。

-- 查詢用戶表中年齡在24到25之間的用戶
select * from user where age between 24 and 25;
等同于
select * from user where age >= 24 and age <= 25;

查詢結(jié)果如下:

2.2、between and時間范圍查詢

注意:

  • 當(dāng)日期字段為date類型時,即時間格式為yyyy-MM-dd, between ‘2024-10-29’ and ‘2024-10-30’ 相當(dāng)于>=‘2024-10-29’ and <=‘2024-10-30’
  • 當(dāng)日期字段為datetime、timestamp類型時,即時間格式為yyyy-MM-dd HH:mm:ss,between ‘2024-10-29’ and ‘2024-10-30’ 相當(dāng)于>=‘2024-10-29 00:00:00’ and <=‘2024-10-30 00:00:00’。所以當(dāng)between and對datetime、timestamp類型查詢時,一定要注意手動拼接時分秒,否則查詢數(shù)據(jù)可能不符合預(yù)期。

先上一個錯誤示例:對datetime類型查詢不帶時分秒

-- 查詢用戶表中創(chuàng)建時間在2024-10-29到2024-10-30之間的數(shù)據(jù)
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';

查詢結(jié)果:

從上面示例可以看出,還有兩條數(shù)據(jù)時間是在2024-10-30日范圍內(nèi),但是并沒有被查詢出來。

所以需要注意:當(dāng)between and對datetime、timestamp類型查詢時,一定要注意手動拼接時分秒,否則查詢數(shù)據(jù)可能不符合預(yù)期。

正確示例

-- 查詢用戶表中創(chuàng)建時間在2024-10-29到2024-10-30之間的數(shù)據(jù)
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';

查詢結(jié)果:

2.3、not between and示例

not between and表示指定范圍之外的值。not between A and B相當(dāng)于 < 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;

查詢結(jié)果如下:

以上就是MySQL中between and的基本用法詳解的詳細(xì)內(nèi)容,更多關(guān)于MySQL between and基本用法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

呼玛县| 谢通门县| 教育| 茂名市| 华池县| 永宁县| 共和县| 阳春市| 侯马市| 台北市| 云霄县| 宁夏| 仁化县| 临颍县| 盐亭县| 抚顺县| 台前县| 郑州市| 丹寨县| 昭苏县| 崇文区| 民权县| 绥江县| 晋州市| 无棣县| 额敏县| 永靖县| 广宗县| 罗平县| 牙克石市| 都江堰市| 华亭县| 乐山市| 扬中市| 邻水| 莱芜市| 乐亭县| 精河县| 罗田县| 哈尔滨市| 崇左市|