SQL中碰到的坑之BETWEEN AND
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
在我的实际项目中,我多次遇到了SQL语言中的BETWEEN … AND运算符的问题。尽管我的脚本看起来好像是正确的,也没有多大问题,但是查询结果与他人的相比却相差了几十万行,这着实让我感到非常震惊。经过多次踩坑,我终于学会了如何避免这个问题,这也许就是古人说的“吃一堑,长一智”的道理吧。 1、问题提出 我需要对一张用户登录表进行统计分析,目标是筛选出在2023年9月29日至2023年10月6日期间登录系统的用户信息。其目的是旨在确定在国庆节期间活跃的用户,并获取他们的相关信息。用户登录表如下: 2、错误的SQL语句 初看之下,这个问题似乎很简单,所以想都没想就迅速地写出了SQL语句,结果一运行与预期的结果不一致。见下图所示: 大家有没有发现2023年10月6日的两条登录信息没有包括进来,这是什么原因呢。 3、原因分析 之所以会出现上述的问题,是因为在MySQL中,使用BETWEEN进行日期范围查询时,默认将右侧查询边界值限制到了日期的开始时间,即00:00:00。因此,对于查询范围为2023年9月29日至2023年10月6日期间的情况,实际上只会查询到2023年10月6日的00:00:00之前的记录,而不包括该日期当天的其他时间段的记录,如19:48:52和23:03:18。那么如何解决这个问题呢? 4、正确的SQL语句 可以采取以下两种方式来解决上述的问题。 方法一: 方法二:要比方法一简便,实际工作中常用这种方法。 该文章在 2024/2/7 22:58:42 编辑过 |
关键字查询
相关文章
正在查询... |