August 1, 2023
Summary: in this tutorial, you will learn how to use the PostgreSQL BETWEEN operator to match a value against a range of values.
Table of Contents
Introduction to the PostgreSQL BETWEEN operator
You use the BETWEEN operator to match a value against a range of values. The following illustrates the syntax of the BETWEEN operator:
value BETWEEN low AND high;
If the value is greater than or equal to the low value and less than or equal to the high value, the expression returns true, otherwise, it returns false.
You can rewrite the BETWEEN operator by using the greater than or equal ( >=) or less than or equal ( <=) operators like this:
value >= low and value <= high
If you want to check if a value is out of a range, you combine the NOT operator with the BETWEEN operator as follows:
value NOT BETWEEN low AND high;
The following expression is equivalent to the expression that uses the NOT and BETWEEN operators:
value < low OR value > high
You often use the BETWEEN operator in the WHERE clause of a SELECT, INSERT, UPDATE or DELETE statement.
PostgreSQL BETWEEN operator examples
Let’s take a look at the payment table in the sample database.

The following query use the BETWEEN operator to select payments whose amount is between 8 and 9 (USD):
SELECT
customer_id,
payment_id,
amount
FROM
payment
WHERE
amount BETWEEN 8 AND 9;

To get payments whose amount is not in the range of 8 and 9, you use the following query:
SELECT
customer_id,
payment_id,
amount
FROM
payment
WHERE
amount NOT BETWEEN 8 AND 9;

If you want to check a value against of date ranges, you should use the literal date in ISO 8601 format i.e., YYYY-MM-DD. For example, to get the payment whose payment date is between 2007-02-07 and 2007-02-15, you use the following query:
SELECT
customer_id,
payment_id,
amount,
payment_date
FROM
payment
WHERE
payment_date BETWEEN '2007-02-07' AND '2007-02-15';

In this tutorial, you have learned how to use PostgreSQL BETWEEN operator to select a value that is in a range of values.