1. 程式人生 > 資料庫 >MySQL中between日期區間查詢結果相同問題

MySQL中between日期區間查詢結果相同問題

今天在做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資料有效值範圍內的最低值。