mysql中使用BETWEEN AND時查不到右邊時間範圍的數據

在按月查找19年10月之前近一年的數據時,使用BETWEEN AND的sql語句如下:

SELECT CONCAT(year(updateDate),DATE_FORMAT(updateDate,'%m')) as label , SUM(cpuNum) as value from sc_project_resource WHERE  updateDate BETWEEN DATE_SUB('2019-10-01',INTERVAL 365 DAY) AND '2019-10-01' group by DATE_FORMAT(updateDate,'%m')  order by   updateDate  ASC;

結果如下,發現查詢結果中卻並不包含10月份的數據 

在項目中debug後發現,傳入的查詢條件默認是加了時分秒,且爲00:00:00,

但數據庫中存儲的該字段是date類型的,所以並沒有查詢到2019-10-01的數據。

解決方法:將時間區間的左邊界改爲2019-10-02,

SELECT CONCAT(year(updateDate),DATE_FORMAT(updateDate,'%m')) as label , SUM(cpuNum) as value from sc_project_resource WHERE updateDate BETWEEN DATE_SUB('2019-10-02',INTERVAL 365 DAY) AND '2019-10-01' group by DATE_FORMAT(updateDate,'%m') ORDER BY   updateDate  ASC;

即可查詢到近一年的數據了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章