
文章插圖
問(wèn)題描述都知道between and查詢是包含上下邊界的, 但是在遇到
形如
select 字段1, 字段2 from table_xxx where 時(shí)間字段 between 開(kāi)始時(shí)間 and 結(jié)束時(shí)間的日期查詢時(shí), 查詢結(jié)果可能會(huì)出乎意料.(注意: 使用的數(shù)據(jù)庫(kù)是MariaDB(MySQL), 時(shí)間字段 是 DATETIME 類型)
比如: select 字段1, 字段2 from table_xxx where 時(shí)間字段 between ‘2021-05-01’ and ‘2021-05-10’ 的查詢結(jié)果中,
包含2021-05-01的記錄, 但并不包含2021-05-10最后一天的記錄,
好像between and的邊界原則失效了, 這是這么回事呢?
問(wèn)題解答實(shí)際上, between and的查詢邊界并沒(méi)有改變, 還是老樣子, 只是我們?cè)谌掌诓樵儠r(shí), 一開(kāi)始把問(wèn)題想簡(jiǎn)單了, 實(shí)際上還是對(duì)于字段類型把握的準(zhǔn)確性.
由于時(shí)間字段是DATETIME類型, 我們來(lái)仔細(xì)看看DATETIME數(shù)據(jù)類型:
DATETIMEA date and 財(cái)路哥 combination. MariaDB displays DATETIME values in 'YYYY-MM-DD HH:MM:SS.ffffff' format, but allows assignment of values to DATETIME columns using either strings or numbers.MariaDB stores values that use the DATETIME data type in a format that supports values between 1000-01-01 00:00:00.000000 and 9999-12-31 23:59:59.999999.以上對(duì)DATETIME的描述摘自:https://mariadb.com/kb/en/date財(cái)路哥/ 頁(yè)面
由此可知, 語(yǔ)句between ‘2021-05-01’ and ‘2021-05-10’
會(huì)被MariaDB數(shù)據(jù)庫(kù)轉(zhuǎn)換為
between ‘2021-05-01 00:00:00.000000’ and ‘2021-05-10 00:00:00.000000’.
這樣當(dāng)然不會(huì)包含05-10這一天的記錄.
所以, 問(wèn)題還是出在 查詢條件 寫(xiě)得不夠嚴(yán)謹(jǐn), 不要偷懶, 寫(xiě)成下面語(yǔ)句
between ‘2021-05-01 00:00:00’ and ‘2021-05-10 23:59:59’
就能達(dá)到我們想要得目標(biāo)結(jié)果了, 如果數(shù)據(jù)很多, 時(shí)間顆粒度要求高, 也可寫(xiě)成
between ‘2021-05-01 00:00:00.000000’ and ‘2021-05-10 23:59:59.999999’
就完美了!
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 谷歌經(jīng)緯度查詢位置 谷歌經(jīng)緯度查詢是什么軟件
- 天喜紅鸞桃花查詢表
- 中國(guó)移動(dòng)服務(wù)密碼查詢 中國(guó)移動(dòng)服務(wù)密碼忘記了怎么辦
- 學(xué)信網(wǎng)查詢考研報(bào)名號(hào)
- 生辰八字五行查詢,怎樣查生辰八字五行缺什么?
- 不良征信記錄消除時(shí)間 查詢記錄多久消除
- mysql數(shù)據(jù)庫(kù)備份方式 mysql數(shù)據(jù)庫(kù)備份方法有幾種
- 2015年考研準(zhǔn)考證號(hào)查詢
- mysql創(chuàng)建數(shù)據(jù)庫(kù)步驟 java鏈接mysql數(shù)據(jù)庫(kù)的詳細(xì)步驟
- mysql和oracle的區(qū)別分析 oracle和mysql的優(yōu)缺點(diǎn)對(duì)比
