BETWEEN
PG 7.4+→ booleanTests whether a value lies within a range (inclusive on both ends). Equivalent to value >= low AND value <= high.
Signatures
value BETWEEN low AND high → booleanvalue NOT BETWEEN low AND high → booleanParameters
| Parameter | Type | Description |
|---|---|---|
| value | any sortable type | Value to test |
| low | same type | Lower bound (inclusive) |
| high | same type | Upper bound (inclusive) |
Examples
SELECT 5 BETWEEN 1 AND 10;trueSELECT * FROM orders WHERE amount BETWEEN 100 AND 500;Orders with amount 100–500SELECT * FROM events WHERE event_date BETWEEN '2025-01-01' AND '2025-03-31';Q1 eventsSELECT * FROM products WHERE price NOT BETWEEN 10 AND 50;Products outside the $10–$50 range`BETWEEN low AND high` is equivalent to `>= low AND <= high`. For timestamps, use `>= start AND < end + 1 day` to avoid capturing midnight of the end date ambiguously.
SELECT * FROM orders WHERE created_at >= '2025-01-01' AND created_at < '2025-04-01';Q1 orders — half-open interval, index-friendly