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

select `mcs_caseset_buy`.`user_id`, `mcs_caseset_buy`.`medname`, `mcs_caseset_buy`.`user_hospital`, `mcs_caseset_buy`.`user_depart`, `mcs_caseset_buy`.`user_carclass`, `mcs_caseset_buy`.`address`, `mcs_wechat_user`.`user_id` as `wx_user`, `mcs_view_log_record`.`view_way`, max(mcs_view_log_record.created_at) as created_at from `mcs_caseset_buy` left join `mcs_wechat_user` on `mcs_wechat_user`.`user_id` = `mcs_caseset_buy`.`user_id` left join `mcs_view_log_record` on `mcs_view_log_record`.`user_id` = `mcs_caseset_buy`.`user_id` where `mcs_view_log_record`.`created_at` between "2018-08-01" and " 2018-08-31" group by `mcs_caseset_buy`.`user_id` order by `mcs_view_log_record`.`created_at` desc

這是我查詢語句,使用到了BETWEEN  AND,但是數據空庫中明確有2018-08-31的數據,但是就是查詢不出來,最後發現我沒有發現右邊界,但是我記得BETWEEN  AND明明是包含又邊界的,所以,不管三七二十一,我把右邊界加上了一天

 

$endTime = date("Y-m-d",strtotime("+1 day", strtotime($end)) );//加一天

 

 

然後就可以了,搞得我都暈了,明明包含右邊界,爲什麼會出現這種情況,我就百度了一下,是因爲數據庫字段類型的原因,我設計的時候是採用datatime類型的

select * from date where test_date between ‘2018-01-21’ and ‘2018-06-07’能查出2018-06-07的數據

如果是datetime類型,’2018-06-07’ 會被轉成’2018-06-07 00:00:00’類型,所以查不出來2018-06-07的數據。

 

明白了喲,

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