提要:你将学习到如何提取某一范围内的数据。

PostgreSQL BETWEEN 简介

使用 BETWEEN 运算符可以匹配某一范围内的值。语法如下:

value BETWEEN low AND high;

如果 value 大于等于 low 并且 小于等于 high,返回 true,否则,返回 false

可以通过使用 >=AND<= 的组合来改写 BETWEEN,结果是一样的:

value >= low AND value <= high;

如果要匹配不在某个范围内的值,可以使用 NOTBETWEEN 的组合:

value NOT BETWEEN low AND high;

下面的写法和 NOT BETWEEN 等效:

value < low OR value > high;

可以在 SELECTINSERTUPDATEDELETEWHERE 子句中使用 BETWEEN

PostgreSQL BETWEEN 示例

来看一下示例数据库中的 payment 表。

payment表结构

下面的代码用于查询出所有支付金额在8-9美元之间的数据:

SELECT
 customer_id,
 payment_id,
 amount
FROM
 payment
WHERE
 amount BETWEEN 8
AND 9;

amount BETWEEN 8 AND 9

查询出所有支付金额不在8-9美元之间的数据:

SELECT
 customer_id,
 payment_id,
 amount
FROM
 payment
WHERE
 amount NOT BETWEEN 8
AND 9;

amount NOT BETWEEN 8 AND 9

如果要查询某一时间段的数据,需要使用符合 ISO 8601 格式的字面量日期时间,比如:YYYY-MM-DD。下面的例子查询出所有在 2007-02-072007-02-15 时间段支付的数据:

SELECT
 customer_id,
 payment_id,
 amount,
 payment_date
FROM
 payment
WHERE
 payment_date BETWEEN '2007-02-07'
AND '2007-02-15';

BETWEEN-with-date-range

上一篇:PostgreSQL的IN