select count(1) from user where regist_date between '2017-07-25 00:00:00' and  '2017-07-25 24:00:00';

这条sql语句查询出结果为0。实际上数据库有一条符合该查询条件的数据。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

错误原因:2017-07-25 24:00:00  晚上24点即为下一天00点  2017-07-26 00:00:00,数据库识别不出24点的信息;换成下一天00点即可以查询出正确结果。

Mysql中用between...and...查询日期时注意事项 随笔 第1张

Mysql中用between...and...查询日期时注意事项 随笔 第2张

 

Java代码中可以识别24点的信息,但就算你写成24点,打印出的结果却是下一天00点。

java代码如下图:

Mysql中用between...and...查询日期时注意事项 随笔 第3张

打印结果如下图:

Mysql中用between...and...查询日期时注意事项 随笔 第4张

把between...and...换成>=   <=能识别出来

Mysql中用between...and...查询日期时注意事项 随笔 第5张

 

 

总结:涉及到时间24点的时候,用下一天00点代替

 

 

https://www.cnblogs.com/lj312/p/7238211.html

 

,

select count(1) from user where regist_date between '2017-07-25 00:00:00' and  '2017-07-25 24:00:00';

这条sql语句查询出结果为0。实际上数据库有一条符合该查询条件的数据。

错误原因:2017-07-25 24:00:00  晚上24点即为下一天00点  2017-07-26 00:00:00,数据库识别不出24点的信息;换成下一天00点即可以查询出正确结果。

Mysql中用between...and...查询日期时注意事项 随笔 第6张

Mysql中用between...and...查询日期时注意事项 随笔 第7张

 

Java代码中可以识别24点的信息,但就算你写成24点,打印出的结果却是下一天00点。

java代码如下图:

Mysql中用between...and...查询日期时注意事项 随笔 第8张

打印结果如下图:

Mysql中用between...and...查询日期时注意事项 随笔 第9张

把between...and...换成>=   <=能识别出来

Mysql中用between...and...查询日期时注意事项 随笔 第10张

 

 

总结:涉及到时间24点的时候,用下一天00点代替

 

 

https://www.cnblogs.com/lj312/p/7238211.html

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄