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的數據。
明白了喲,