BETWEEN( ) 函数

返回可表明指定值是否在某范围内的逻辑值。

语法

BETWEEN(最小值最大值

参数

名称 类型 描述

字符

数值

日期时间

要测试的域、表达式或字面量值。
最小

字符

数值

日期时间

范围内的最小值。

可以是域、表达式或字面量值。

最大

字符

数值

日期时间

范围内的最大值。

可以是域、表达式或字面量值。

说明

计算结果为 T(真)的范围包括最小值最大值

有关字符范围的信息,请参见SET EXACT 行为

输出

逻辑。 如果大于等于最小值且小于等于最大值,则返回 T(真)。 否则,返回 F(假)。

示例

基本示例

数值输入

返回 T:

BETWEEN(500,400,700)

返回 F:

BETWEEN(100,400,700)

字符输入

返回 T:

BETWEEN("B","A","C")

返回 F,因为字符比较区分大小写,而且小写字母 "b" 并非介于 "A" 和 "C" 之间:

BETWEEN("b","A","C")

日期时间输入

返回 T:

BETWEEN(`141230`,`141229`,`141231`)

对于登录时间域中所有从 07:00:00 AM 到 09:00:00 AM(包括两者)的值,返回 T;否则,返回 F:

BETWEEN(登录时间,`t070000`,`t090000`)

SET EXACT 行为

对于姓氏域中所有以从 "C" 到 "K" 的字母(包括两者)开头的值,返回 T;否则,返回 F(SET EXACT 必须为 OFF):

BETWEEN(姓氏, "C", "K")

对于姓氏域中所有以从 "C" 到 "J" 的字母(包括两者)开头的值,返回 T;否则,返回 F(SET EXACT 必须为 ON)。 对于单个字母 "K",也返回 T。

BETWEEN(姓氏, "C", "K")

域输入

对于发票日期域中从 2014 年 9 月 30 日到 2014 年 10 月 30 日的所有值(包括这两个值在内),返回 T;否则,返回 F:

BETWEEN(发票日期, `20140930`, `20141030`)

对于发票日期不属于采购订单日期和付款日期(包括这两个日期在内)之间的所有记录,返回 T;否则,返回 F:

NOT BETWEEN(发票日期, 采购订单日期, 付款日期)

对于发票金额域中从 $1000 到 $5000 的所有值(包括这两个值在内),返回 T;否则,返回 F:

BETWEEN(发票金额, 1000, 5000)

高级示例

创建过滤器以查看薪水范围

以下示例打开员工列表样例表并应用一个过滤器,以将显示的记录限制为仅包括薪水大于或等于 $40,000.00 且小于或等于 $50,000.00 的员工。

OPEN 员工列表
SET FILTER TO BETWEEN(薪水, 40000.00, 50000.00)

创建一个过滤器以在变化的范围内查找日期

您已经创建了一个表,以联接贵公司差旅费系统中的数据和公司信用卡数据。 您想要查找任何符合以下条件的实例:员工在报销旅馆房间费用的同时把账记在公司信用卡上。

您按 Amount 字段联接这两组数据,并且打算使用旅馆住宿日期和差旅费日期来确认这两个金额指向相同的费用。 问题是差旅费系统中的日期可能与公司信用卡数据中的旅馆日期相差一到两天。

下面的示例打开 Joined_expense_data 表,并且应用一个过滤器以在一个旅馆住宿日期范围内查找差旅费日期。 通过使用字段而不是实际日期值,这些范围会随着数据的变化而变动。

OPEN Joined_expense_data
SET FILTER TO BETWEEN(T_E_date, Arrival_date-2, Arrival_date+2) OR BETWEEN(T_E_date, Departure_date-2, Departure_date+2)

备注

支持的数据类型

BETWEEN( ) 函数的输入可以是数值、字符或日期时间数据。 您不能混用数据类型。 所有三个输入必须属于相同的数据类别。

请使用 BETWEEN( ) 而不是 AND 运算符

您可以使用 BETWEEN( ) 函数来替代使用 AND 运算符的表达式。

例如:

BETWEEN(发票金额, 1000, 5000)

等效于

发票金额 >= 1000 AND 发票金额 <= 5000

最小值最大值的顺序

BETWEEN( ) 函数中的最小值最大值的顺序无所谓,因为 Analytics 自动识别哪个值为最小值以及哪个值为最大值。

下面的两个示例都返回 T:

BETWEEN(2500, 1000, 5000)
BETWEEN(2500, 5000, 1000)

数值输入的小数精度

当要比较的数值输入具有不同的小数精度时,比较运算将使用较高水平的精度。

返回 T,因为 1.23 等于 1.23:

BETWEEN(1.23, 1.23, 1.25)

返回 F,因为一旦考虑第三个小数位,则 1.23 小于 1.234:

BETWEEN(1.23, 1.234, 1.25)

字符数据

区分大小写

在与字符数据共同使用时,BETWEEN( ) 函数区分大小写。 当它比较字符时,"a" 不等于 "A"。

返回 F:

BETWEEN("B","a","C")

如果您使用大小写不一致的数据,则在使用 BETWEEN( ) 之前,可使用 UPPER( ) 函数将值转换为大小写一致的形式。

返回 T:

BETWEEN(UPPER("B"), UPPER("a"), UPPER("C"))

部分匹配

对于字符比较,支持不完全匹配。

可被最小值包含。

返回 T,即使 "AB" 似乎小于最小值 "ABC":

BETWEEN("AB", "ABC", "Z")

最大值可被包含。

返回 T,即使 "ZZ" 似乎大于最大值 "Z":

BETWEEN("ZZ", "ABC", "Z")

说明

字符串比较中的较短值必须出现在较长值的开头才能形成匹配。

部分匹配和 SET EXACT

当 SET EXACT = OFF(这是 Analytics 默认设置)时,部分匹配被启用。 如果 SET EXACT = ON,不完全匹配被禁用,比较值必须完全匹配才能构成匹配。

当 SET EXACT 为 ON 时,上述两个示例都为假。

有关 SET EXACT(精确字符比较选项)的更多信息,请参见 SET 命令

打开或关闭 SET EXACT

如果您想要确保精确字符比较选项不与 BETWEEN( ) 函数共同使用,请在选项对话框( 工具 > 选项)中的选项卡中检查是否已取消选择该选项。

如果您使用脚本,您可以在 BETWEEN( ) 函数出现之前添加 SET EXACT OFF 命令。 如果需要,您可以使用 SET EXACT ON 命令恢复之前的状态。

日期时间参数

被指定为函数输入的日期、日期时间或时间域都可以使用任何日期、日期时间或时间格式,前提是域定义正确定义了该格式。

混用日期、日期时间和时间输入

您可以在 BETWEEN( ) 函数的三个输入中混用日期、日期时间和时间值,但混用这些日期时间子类型可能得到无意义的结果。

Analytics 使用序列号等效值来处理日期时间计算,因此,即使您只对日期时间值的日期部分感兴趣,时间部分仍然构成计算的一部分。

请看下面的示例:

返回 T,因为 2014 年 12 月 31 日落入由最小值最大值指定的范围:

BETWEEN(`20141231`,`20141229`,`20141231`)

返回 F,即使 2014 年 12 月 31 日 12:00 PM 似乎落入由最小值最大值指定的范围:

BETWEEN(`20141231 120000`,`20141229`,`20141231`)

如果我们考察这两个表达式的序列号等效值,我们可以明白为什么第二个表达式的结果为假。

返回 T,因为序列号等于序列号最大值

BETWEEN(42003.000000, 42001.000000, 42003.000000)

返回 F,因为序列号大于序列号最大值

BETWEEN(42003.500000, 42001.000000, 42003.000000)

序列号 42003.500000 大于 42003.000000,因此它超出范围,即使这两个日期完全相同。 0.500000 是等于 12:00 PM 的序列号。

协调日期时间子类型

要避免混用日期时间子类型可能导致的问题,您可以使用函数协调子类型。

例如,以下表达式使用与上面的第二个示例相同的初始值,但返回 T 而非 F:

BETWEEN(CTOD(DATE(`20141231 120000`,"YYYYMMDD"),"YYYYMMDD"),`20141229`,`20141231`)

指定字面量日期、日期时间或时间值

在为任何函数输入指定字面量日期、日期时间或时间值时,您必须使用下表中的格式,并且必须将值放在反引号中 — 例如,`20141231`

在日期或时间的各个部分之间,不要使用任何分隔符,如斜杠 (/) 或冒号 (:)。

  • 日期时间值 - 您可以使用日期、分隔符和下表列出的时间格式的任意组合。 日期必须位于时间前面,并且您必须在两者之间使用分隔符。 有效分隔符是单个空格、字母 't' 或字母 'T'。

  • 时间值 – 您必须使用 24 小时时钟指定时间。 协调世界时 (UTC) 偏移量前面必须带有加号 (+) 或减号 (-)。

    格式示例

    字面值示例

    YYYYMMDD

    `20141231`

    YYMMDD

    `141231`

    YYYYMMDD hhmmss

    `20141231 235959`

    YYMMDDthhmm

    `141231t2359`

    YYYYMMDDThh

    `20141231T23`

    YYYYMMDD hhmmss+/-hhmm

    (UTC 偏移量)

    `20141231 235959-0500`

    YYMMDD hhmm+/-hh

    (UTC 偏移量)

    `141231 2359+01`

    thhmmss

    `t235959`

    Thhmm

    `T2359`

    说明

    请勿在包含 UTC 偏移量数据的主时间格式中单独使用 hh。 例如,请避免:hh+hhmm。 结果可能不可靠。