比如在Mysql中有如下select語句:
SELECT * FROM userinfo WHERE xm='xiaoming' and datetime BETWEEN'2020-01-01' and '2020-01-31'
上面這種寫法 查詢出來的數據並不會包括 2020-1-31 日的數據,因為MySQL對日期的查詢是默認“00:00:00”,所以上面的時間區間實際為:2020-01-01:00:00:00——2020-01-31:00:00:00,31日當天的數據是不在區間內的,所以查詢不到。
解決方法:
1,把日期往后推一天,2018-10-01——2018-11-01
2,把右邊界的時間精確到邊界,2018-10-01——2018-10-31 23:59:59
補充:
以上問題只會在字段類型為‘DateTime’中會出現,MySQL本身是包含右邊界的,如果是datetime,數據格式則會被轉換為:2018-10-01 00:00:00,數據類型本身是date則不會出現上述問題。
