亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL BETWEEN AND踩坑記錄

 更新時間:2023年07月28日 11:02:18   作者:Bryce180  
這篇文章主要介紹了MySQL BETWEEN AND踩坑記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MySQL BETWEEN AND踩坑

在日常使用MySQL的過程中,我們很習慣性的會使用“BETWEEN … AND…”來進行條件查詢,篩選對應時間、狀態(tài)的數(shù)據(jù)。

但,如果這個日期字段是日期/時間格式,那么坑就來了。

SELECT 
	* # 正式學習工作盡量不要直接使用 *,這里是自建的模擬表無所謂
FROM 
	test 
WHERE 
	time BETWEEN '2023-04-01' AND '2023-04-20'
ORDER BY 
	time desc

輸出結果:

在這里插入圖片描述

但是!

實際上我們的表中是有2023-04-20這一天的數(shù)據(jù)的

SELECT 
	*
FROM 
	test 
WHERE 
	DATE(time) = '2023-04-20'

在這里插入圖片描述

MySQL的BETWEEN ... AND...的取值確實是閉區(qū)間,但是如果日期字段包含時間,即2023-04-20 09:23:35

MySQL會將BETWEEN '2023-04-01' AND '2023-04-20'自動轉換為BETWEEN '2023-04-01 00:00:00' AND '2023-04-20 00:00:00'

也就是說,當日期字段帶時間時,最后一天僅會獲取00:00:00這一時間點的數(shù)據(jù),而非我們想象中的最后一天一整天的數(shù)據(jù)!

解決思路

1.使用DATE()

DATE(time) BETWEEN '2023-04-01' AND '2023-04-20'

2.使用小于號,小于最后一天的后一天

time >= '2023-04-01' and time < '2023-04-21'

3.手動補上時間(不建議,麻煩且可能出現(xiàn)更多坑)

time BETWEEN '2023-04-01 00:00:00.000000' AND '2023-04-20 23:59:59.999999'

MySQL之between ...and....小知識點

使用BETWEEN AND關鍵字檢索數(shù)據(jù)表中指定的數(shù)據(jù)內(nèi)容。

帶BETWEEN AND關鍵字的查詢

我們已經(jīng)學會了如何用IN關鍵字精確查詢數(shù)據(jù)表中的內(nèi)容,但是在很多時候,我們僅僅是想知道在某一范圍內(nèi)有多少符合條件的數(shù)據(jù),這就不得不使用到關鍵字BETWEEN AND了,它是閉區(qū)間,前后都可以取到。

BETWEEN AND需要兩個參數(shù)支持,一個是范圍的開始值,另一個就是結束值了。

如果字段值滿足指定的范圍查詢條件,就返回這些滿足條件的數(shù)據(jù)內(nèi)容。

語法規(guī)則為:

SELECT 字段名 FROM 表名 WHERE 字段名 BETWEEN n1 AND n2; ???????

舉個例子假設我們現(xiàn)在有一張表Mall_products,

內(nèi)容如下:

我們將使用BETWEEN AND關鍵字檢索出所有國家代碼為1~50的商品的信息。

查詢代碼如下:

SELECT *
FROM Mall_products
WHERE prod_country BETWEEN 1 AND 50;

結果為:

查詢過程如下:

可以看到,返回結果包含了國家代碼從1~50之間的字段值。尤其值得注意的是,端點值1也包含在返回結果中。

帶NOT BETWEEN AND關鍵字的查詢

像上一關介紹的關鍵字IN一樣,我們還可以對關鍵字BETWEEN AND進行取反,表示查詢指定范圍之外的值。

語法規(guī)則為:

SELECT 字段名 FROM 表名 WHERE 字段名 NOT BETWEEN n1 AND n2; ???????

舉個例子我們依然使用表Mall_products。

現(xiàn)在我們想要查詢除了國家代碼為1~50的所有國家的產(chǎn)品內(nèi)容。

查詢代碼如下:

SELECT *
FROM Mall_products
WHERE prod_country NOT BETWEEN 1 AND 50;

結果為:

由結果可以看出,返回的結果只有大于國家代碼50的內(nèi)容。

怎么樣?簡單吧!

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MySQL?分庫分表的項目實踐

    MySQL?分庫分表的項目實踐

    當用戶量級上升,寫請求越來越多,這時需要用到分庫分表,本文就介紹了MySQL?分庫分表的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2022-04-04
  • MySQL用limit方式實現(xiàn)分頁的實例方法

    MySQL用limit方式實現(xiàn)分頁的實例方法

    在本篇文章中小編給大家整理了一篇關于MySQL用limit方式實現(xiàn)分頁的實例方法,有需要的朋友們可以參考學習下。
    2020-01-01
  • MySQL數(shù)據(jù)庫的約束限制詳解

    MySQL數(shù)據(jù)庫的約束限制詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的約束限制詳解,數(shù)據(jù)庫的約束是對表中數(shù)據(jù)進行的一種限制,為了保證數(shù)據(jù)的正確性、有效性、完整性,下文簡單介紹需要的朋友可以參考一下
    2022-08-08
  • Mysql 遠程連接配置實現(xiàn)的兩種方法

    Mysql 遠程連接配置實現(xiàn)的兩種方法

    這篇文章主要介紹了Mysql 遠程連接配置實現(xiàn)的兩種方法的相關資料,需要的朋友可以參考下
    2017-07-07
  • mysql外鍵基本功能與用法詳解

    mysql外鍵基本功能與用法詳解

    這篇文章主要介紹了mysql外鍵基本功能與用法,結合實例形式詳細分析了mysql外鍵的基本概念、功能、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • Mysql快速插入千萬條數(shù)據(jù)的實戰(zhàn)教程

    Mysql快速插入千萬條數(shù)據(jù)的實戰(zhàn)教程

    這篇文章主要給大家介紹了關于Mysql快速插入千萬條數(shù)據(jù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • MySQL定時任務不能正常執(zhí)行的原因分析及解決方法

    MySQL定時任務不能正常執(zhí)行的原因分析及解決方法

    大家好,本篇文章主要講的是MySQL定時任務不能正常執(zhí)行的原因分析及解決方法,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • mysql for update是鎖表還是鎖行實例詳解

    mysql for update是鎖表還是鎖行實例詳解

    在并發(fā)一致性控制場景中,我們常常用for update悲觀鎖來進行一致性的保證,但是如果不了解它的機制,就進行使用,很容易出現(xiàn)事故,比如for update進行了鎖表導致其他請求只能等待,從而拖垮系統(tǒng),這篇文章主要介紹了mysql for update是鎖表還是鎖行操作,需要的朋友可以參考下
    2024-03-03
  • MySQL數(shù)據(jù)庫表修復 MyISAM

    MySQL數(shù)據(jù)庫表修復 MyISAM

    這篇文章主要介紹了MySQL數(shù)據(jù)庫表修復 MyISAM ,需要的朋友可以參考下
    2014-06-06
  • Django+mysql配置與簡單操作數(shù)據(jù)庫實例代碼

    Django+mysql配置與簡單操作數(shù)據(jù)庫實例代碼

    這篇文章主要介紹了Django+mysql配置與簡單操作數(shù)據(jù)庫實例,需要的朋友可以參考下
    2017-07-07

最新評論