МЕЖДУ И
Синтаксис
expr BETWEEN min AND max
Описание
Если expr больше или равно min и expr меньше или равно max, BETWEEN возвращает 1, в противном случае возвращает 0. Это эквивалентно выражению (min <= expr AND expr <= max), если все аргументы одного типа. В противном случае происходит преобразование типов в соответствии с правилами, описанными в Преобразовании типов, но применёнными ко всем трём аргументам.
Примеры
SELECT 1 BETWEEN 2 AND 3; +-------------------+ | 1 BETWEEN 2 AND 3 | +-------------------+ | 0 | +-------------------+
SELECT 'b' BETWEEN 'a' AND 'c'; +-------------------------+ | 'b' BETWEEN 'a' AND 'c' | +-------------------------+ | 1 | +-------------------------+
SELECT 2 BETWEEN 2 AND '3'; +---------------------+ | 2 BETWEEN 2 AND '3' | +---------------------+ | 1 | +---------------------+
SELECT 2 BETWEEN 2 AND 'x-3'; +-----------------------+ | 2 BETWEEN 2 AND 'x-3' | +-----------------------+ | 0 | +-----------------------+ 1 row in set, 1 warning (0.00 sec) Warning (Code 1292): Truncated incorrect DOUBLE value: 'x-3'
NULL:
SELECT 1 BETWEEN 1 AND NULL; +----------------------+ | 1 BETWEEN 1 AND NULL | +----------------------+ | NULL | +----------------------+
Примеры DATE, DATETIME и TIMESTAMP. Пропуская компонент времени, сравнение производится с 00:00, поэтому более поздние времена в тот же день не возвращаются:
CREATE TABLE `x` (
a date ,
b datetime,
c timestamp
)
INSERT INTO x VALUES
('2018-11-11', '2018-11-11 05:15', '2018-11-11 05:15'),
('2018-11-12', '2018-11-12 05:15', '2018-11-12 05:15');
SELECT * FROM x WHERE a BETWEEN '2018-11-11' AND '2018-11-12';
+------------+---------------------+---------------------+
| a | b | c |
+------------+---------------------+---------------------+
| 2018-11-11 | 2018-11-11 05:15:00 | 2018-11-11 05:15:00 |
| 2018-11-12 | 2018-11-12 05:15:00 | 2018-11-12 05:15:00 |
+------------+---------------------+---------------------+
SELECT * FROM x WHERE b BETWEEN '2018-11-11' AND '2018-11-12';
+------------+---------------------+---------------------+
| a | b | c |
+------------+---------------------+---------------------+
| 2018-11-11 | 2018-11-11 05:15:00 | 2018-11-11 05:15:00 |
+------------+---------------------+---------------------+
SELECT * FROM x WHERE c BETWEEN '2018-11-11' AND '2018-11-12';
+------------+---------------------+---------------------+
| a | b | c |
+------------+---------------------+---------------------+
| 2018-11-11 | 2018-11-11 05:15:00 | 2018-11-11 05:15:00 |
+------------+---------------------+---------------------+
Содержимое, воспроизведённое на этом сайте, является собственностью его соответствующих владельцев, и это содержимое не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/between-and/