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的数据。

 

明白了哟,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值