首页/数据/SQL 速查/BETWEEN 范围条件
本包目录(311 条)

BETWEEN 范围条件

BETWEEN a AND b 等价于 >= a AND <= b,两端都包含;对时间列用日期做边界时要留意时间部分,推荐半开区间写法。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT * FROM orders
WHERE amount BETWEEN 100 AND 500;

-- 时间范围:半开区间不漏数据
SELECT * FROM orders
WHERE created_at >= '2024-01-01'
  AND created_at <  '2024-02-01';
等价改写x BETWEEN a AND b 即 x >= a AND x <= b
包含性a、b 两个端点都包含
NULL任一操作数为 NULL 时结果为 NULL
DATETIME 列 BETWEEN '2024-01-01' AND '2024-01-31' 只覆盖到 1 月 31 日 00:00:00,当天其余时间会被漏掉。

易错点

  • 用日期字符串做 DATETIME 范围边界时容易漏掉最后一天,改用 < 次日 的半开区间
  • PostgreSQL 另有 BETWEEN SYMMETRIC(不要求左小右大),MySQL 无此写法

数据来源与参考

  • MySQL 8.0 Reference Manual · BETWEEN Operator
  • PostgreSQL Documentation · BETWEEN Predicate
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌