数据库中,between…and相当于数学中的闭区间。
between 2 and 4 和 >=2and<=4 是等价的,每种数据库处理方式不一样,这种是sql的处理方式mysql+sqlserver,oracle中between and也包含边界值,也就是说包含两个端的数,前后都是闭区间。
闭区间是直线上的连通的闭集,是直线上介于固定两点间的所有点的集合(包括给定的两点),用[a,b]来表示(包含两个端点a和b)(且a<b)。由于它是有界闭集,所以它是紧致的。
区间:
区间在积分理论中起着重要作用,因为它们作为最"简单"的实数集合,可以轻易地给它们定义"长度"、或者说"测度"。然后,"测度"的概念可以拓,引申出博雷尔测度,以及勒贝格测度。
区间也是区间算术的核心概念。区间算术是一种数值分析方法,用于计算舍去误差。
区间的概念还可以推广到任何全序集T的子集S,使得若x和y均属于S,且x<z<y,则z亦属于S。例如整数区间[-1...2]即是指{-1,0,1,2}这个集合。
不一定,不同的数据库管理系统,between 的处理有所不同。BETWEEN *** 作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。
BETWEEN *** 作符
*** 作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SQL BETWEEN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
需要注意:不同的数据库对 BETWEEN...AND *** 作符的处理方式是有差异的。某些数据库会列出介于 "value1 " 和 "value2" 之间的值,但不包括 "value1 " 和 "value2";某些数据库会列出介于 "value1 " 和 "value2"之间的值并包括 "value1 " 和 "value2";而另一些数据库会列出介于 "value1 " 和 "value2" 之间的值,包括 "value1 " ,但不包括 "value2" 。
所以使用前,需要确定数据库是如何处理 BETWEEN....AND *** 作符的!
作用:
BETWEEN and *** 作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。
范围:
*** 作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
语法:
SELECT column_name(s) FROM table_name
WHERE column_name BETWEEN value1 AND value2
注意事项:
不同的数据库对 BETWEEN...AND *** 作符的处理方式是有差异的。有些数据库包含value1 和 value2 有些只包含value1 不包含value2,有些则两则均不包括。
所以,请检查你的数据库是如何处理 BETWEEN....AND *** 作符的!
举例说明(以sql server 2008为列)
(1).建表并且生成数据
create table 销售清单
(单据编号 varchar(10),
商品 varchar(10),
时间 datetime)
insert into 销售清单
values ('00001','苹果','2014-01-01'),
('00002','荔枝','2015-01-01'),
('00003','菊花','2016-01-01'),
('00004','玫瑰','2015-12-01')
(2).between and 查找2015年的记录
select * from 销售清单 where 时间 between '2015-01-01' and '2015-12-31'
结果:
-
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)