MySQL中between日期區間查詢結果相同問題
阿新 • • 發佈:2021-01-18
今天在做sql查詢練習,查詢單個表中的資料時遇到了查詢結果相同的問題
SELECT * FROM hero WHERE grounding_date BETWEEN '2007-01-01' AND '2019-01-01'; sql1
SELECT * FROM hero WHERE grounding_date BETWEEN '20007-01-01' AND '2019-01-01';sql2
1sql1上架日期查詢sql是中的20007是我無意間 ,天太冷多打出來的,結果我發現查詢結果和2007-01-01到2019-01-01的結果竟然是一樣的,看著就很不對勁,我反覆試了幾次發現還是一樣。
於是我去問我的MySQL基礎老師,老師要我看一下查詢表的資料
表中並沒有2007-01-01之後的資料…
grounding_date欄位是date型別
官方文件說明是這樣
20007已經超過9999的範圍了,在date型別中已經不是一個合法值了,所以把20007作為最低值’1000-01-01’進行作為查詢條件。我把表中的資料更改再進行查詢驗證
更改後的表資料
更改後的查詢結果 sql2
更改後的查詢結果 sql1
date型別最低範圍到2009-01-01區間的查詢結果
超出最低範圍的查詢結果
超出date範圍的倆查詢結果都一樣
between日期區間查詢中如果查詢的date型別資料超出其date型別資料的範圍時,將其轉換為date資料有效值範圍內的最低值。