Оператор BETWEEN дает возможность указать диапазон значений для выборки из БД. Он работает вместе с оператором WHERE (также ознакомьтесь в том посте с оператором AND).

В данном посте для простоты будет использоваться не локальная база данных, а взятая тут. В поле SQL Statement вы можете копировать код из данного поста и сразу смотреть результат.

BETWEEN SQL

Начнем с примера для получения товаров из таблицы Products с ценами в диапазоне:

SELECT 
   ProductName, Unit, Price
FROM Products
WHERE Price BETWEEN 10 AND 13

Указываем какие поля нам нужно выбрать из таблицы Products и указываем, что значение в колонке Price должно быть между 10 и 13. Ниже результат выполнения данного запроса:

BETWEEN PRICE RANGE

Этот оператор будет соответствовать такому запросу:

SELECT 
	ProductName, Unit, Price
FROM Products
WHERE Price >= 10 AND Price <= 13

Какой вариант использовать — решать Вам.

BETWEEN DATES

Его также можно использовать для поиска в диапазоне дат. Например, возьмем таблицу Emloyees, у каждого сотрудника указана дата рождения. Давайте получим всех сотрудников, которые родились в январе, феврале или марте:

SELECT LastName, FirstName, BirthDate
FROM Employees
WHERE MONTH(BirthDate) BETWEEN 1 AND 3

Результат:

BETWEEN MONTHS

Примечание. MONTH — это функция доступная в MySQL и SQL SERVER, поэтому она может не работать в других БД. Перед использованием ознакомьтесь с официальной документацией.

Также на примере таблицы Orders выберем заказы за январь 1998 года:

SELECT * 
FROM Orders
WHERE OrderDate BETWEEN '1998-01-01' AND '1998-01-31'

NOT BETWEEN

Данный оператор работает как отрицание, т.е. вы можете указать из какого диапазона вам не нужны данные:

SELECT * 
FROM Orders
WHERE OrderDate NOT BETWEEN '1998-01-01' AND '1998-01-31'

Данные запрос вернет все заказы кроме января 1998г.

Ваши вопросы и комментарии: