MySQL中的BETWEEN...AND的使用情況
MySQL中BETWEEN...AND的使用
注意:
這個語法是包后不包前的,也就是說,如果值等于and關(guān)鍵后面的值,這條記錄也是合格的。
但是值等于and前面的值,這條記錄是不合格的。
用法一
SELECT *?FROM 表 WHERE 字段 BETWEEN 值1 AND 值2
例如:
SELECT * FROM employee WHERE age BETWEEN 18 AND 24
其實這種寫法相當于
SELECT * FROM employee WHERE age >?18 AND age <= 24
這應(yīng)該很好理解!在結(jié)合mybatis時,只要傳入值1和值2就可以進行查詢控制了
用法二
SELECT * FROM 表 WHERE 值 BETWEEN 字段1 AND 字段2
例如:
SELECT * FROM appoint_consumable WHERE 111 BETWEEN C_APPOINT_ID AND C_CONSUMABLE_ID
這種寫法可能有點難理解,并且有兩個要求就是,
- 1、字段1和字段2的數(shù)據(jù)類型必須相同
- 2、字段1不能大于字段2
此種寫法可以用于查詢當前時間(或者某一時間段)是否在某活動或者某會議的開始和結(jié)束之間。
結(jié)合mybatis時,只需要控制查詢值得傳入就能控制查詢了
MySQL的BETWEEN AND范圍查詢問題
時間范圍
(當數(shù)據(jù)庫字段中存儲的是yyyy-MM-dd格式,即date類型;用between and查詢參數(shù)yyyy-MM-dd格式時,包含頭尾,相當于x>=y && x<=z.
當是yyyy-MM-dd HH:mm:ss格式,即datetime類型;用between and查詢參數(shù)yyyy-MM-dd HH:mm:ss格式時,包含頭尾,x>=y && x<=z。參數(shù)yyyy-MM-dd格式時,只包含頭,相當于x>=y && x<z。)
查詢參數(shù)格式與數(shù)據(jù)庫類型相對應(yīng)時,between and包含頭尾,否則依情況
示例:
datetime類型,參數(shù)帶時分秒(yyyy-MM-dd HH:mm:ss)
SELECT e.create_time data FROM sys_enforce_event e WHERE e.create_time BETWEEN '2019-03-22 09:39:33' AND '2019-03-25 15:17:51'
查詢結(jié)果如下圖:
結(jié)論:
若datetime類型時,查詢參數(shù)帶時分秒,BETWEEN AND相當于 x >= y && x<=z。即包含頭尾。
datetime類型,參數(shù)不帶時分秒(yyyy-MM-dd)
SELECT e.create_time data FROM sys_enforce_event e WHERE e.create_time BETWEEN '2019-03-22' AND '2019-03-25'
查詢結(jié)果如下圖:
結(jié)論:
若datetime類型時,查詢參數(shù)不帶時分秒,BETWEEN AND相當于 x >= y && x<z。即只包含頭。
date類型,參數(shù)不帶時分秒(yyyy-MM-dd)
SELECT l.create_time FROM sys_enforce_black_list l WHERE l.create_time BETWEEN '2019-02-01' AND '2019-03-02'
查詢結(jié)果如下圖:
結(jié)論:
若date類型時,查詢參數(shù)不帶時分秒,BETWEEN AND相當于 x >= y && x<=z。 即包含頭尾。
數(shù)字范圍
包含頭尾,相當于:x>=y && x<=z
SELECT l.release_state FROM sys_enforce_black_list l WHERE l.release_state BETWEEN 1 AND 4
如圖所示:
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Slave memory leak and trigger oom-killer
這篇文章主要介紹了Slave memory leak and trigger oom-killer,需要的朋友可以參考下2016-07-07Mysql數(shù)據(jù)庫按時間點恢復實戰(zhàn)記錄
如果客戶在某時間節(jié)點由于誤操作,導致數(shù)據(jù)丟失,RDS管控服務(wù)是如何進行恢復的呢?通過Mysql數(shù)據(jù)庫按時間點恢復該如何操作呢,感興趣的朋友跟隨小編一起看看吧2021-06-06mysql中DATE_FORMAT()函數(shù)的具體使用
在MySQL中,DATE_FORMAT()函數(shù)用于將日期/時間類型的值按照指定的格式進行格式化輸出,具有一定的參考價值,感興趣的可以了解一下2024-05-05Mysql實現(xiàn)Oracle中的Start with...Connect by方式
文章總結(jié):作者在遷移數(shù)據(jù)庫時,使用了Oracle的startwith進行樹的遞歸查詢,但遇到了一些問題,通過搜索和修改,作者成功地使用存儲過程和預(yù)處理語句來實現(xiàn)動態(tài)查詢,并解決了變量聲明和預(yù)處理語句的問題2024-12-12