我遇到了以下查询,但不确定它们之间是否有任何区别,
select * from table where date between fromdate and todate
V/S
select * from table where date >= fromdate and date <= todate
如果我们使用第一个查询,它是否包括从和到日期的日期?即在 16/10/2012 和 22/10/2012 之间,是否包括 16 日和 22 日?
太感谢了。
是的,它包括他们。
这就是我避免的原因BETWEEN
。这个名字至少是模棱两可的。不同的人理解不同的事情,你的问题也表明了这一点。
例如,在我的理解中, between 是独占的,但在 SQL 中是包含的。
没有区别。
(a BETWEEN b AND c)
和写一样
((a >= b) AND (a <= c))
没有不同
两个查询都会给出相同的结果
没有区别:
expr 介于最小值和最大值之间
如果 expr 大于或等于 min 并且 expr 小于或等于 max,则 BETWEEN 返回 1,否则返回 0。这相当于表达式 (min <= expr AND expr <= max) 如果所有参数都是同类型。
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between
是的,它们包括在内。第一个只是第二个的捷径,所以它们是等价的。
您可以在这里查看一些关于 between 的解释: MySQL "between" 子句不包含? 它还显示使用 <= & => 更快