MySQL日期区间查询问题
一、前言
在开发中,我们往往会碰到:查询日期区间(时间段)的问题。
看似很简单的问题,但不经意间是很容易出错的。
现总结如下:
二、问题及解决方案
a.先说下常见的两种查询方式:
①. select * from ord_base where create_time >= '2018-08-29' and create_time <= '2018-09-29';
②. select * from ord_base where create_time between '2018-08-29' and '2018-09-29';
结果:
程序启动,代码运行,查询结果有数据,第一感觉没有问题,然后提测,结果测试小伙伴一测试,
问题就出现了,仅接着,bug通过邮件的形式弹出,你一看,bug问题:2018-09-29当天的数据竟然没有查到..
b.解决方案:
①.select * from ord_base where create_time >= '2018-08-29' and create_time <= '2018-09-29 23:59:59';
②. select * from ord_base where create_time between '2018-08-29' and '2018-09-29 23:59:59';
在 截止日期添加 " %H:%i:%S ",eg:'2018-09-29 23:59:59';
③. select * from ord_base
where 1= 1
and date_format(create_time,'%Y-%m-%d') >= '2018-08-29'
and date_format(create_time,'%Y-%m-%d') <= '2018-09-29'
使用 date_format(xx,xx)函数。
Now ~ ~ ~写到这里,就写完了,如果有幸帮助到你,请记得关注我,共同一起见证我们的成长。
小结
谢谢观赏,我叫猿医生。
猿友推荐:正在奔跑的程序猿