Mysql使用between and處理時間區間不包括右邊界問題


比如在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則不會出現上述問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM