操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
语法
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
注意事项
对于上诉SQL不同的数据库对 BETWEEN…AND 操作符的处理方式是有差异的。主要有以下三种情况,
- 查询出"value1" 和 “value2” 之间的数据,但不包括 “value1” 和 “value2”
- 某些数据库会列出介于 “value1” 和 “value2” 之间并包括 “value1” 和 “value2” 的数据(比如MQL,ORACLE)
- 而另一些数据库会列出介于 “value1” 和 “value2” 之间的数据,包括 “value1” ,但不包括 “value2” 。
对于如下表test1有9条数据
结论
between 的范围:包含两边的边界值
eg: id between 3 and 7 等价与 id >=3 and id<=7
not between 的范围:不包含边界值
eg:id not between 3 and 7 等价与 id < 3 or id>7
Mysql中用between…and…查询日期时注意事项
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点即可以查询出正确结果。
把between…and…换成>= <=能识别出来