Поиск по сайту:

SQL между, MySQL между датами, а не между


Оператор SQL BETWEEN используется вместе с операторами SQL IN, используемыми последовательно. Значения, определенные как часть диапазона МЕЖДУ, являются включающими, т. е. значения, упомянутые в диапазоне, включаются в начальное и конечное значения. Давайте подробно обсудим оператор BETWEEN. Как упоминалось выше, оператор BETWEEN можно использовать вместе с числовым значением, текстовым значением и датой. Ниже мы подробно обсудим все три.

SQL между синтаксисом

SELECT Column(s) FROM table_name WHERE column BETWEEN value1 AND value2;

Используя вышеупомянутый синтаксис, мы можем определить значения как часть оператора BETWEEN. Кроме того, упомянутый выше синтаксис остается тем же для использования с числовым значением, текстовым значением и значением даты.

Оператор SQL BETWEEN для числового значения

Мы поймем вышеупомянутый синтаксис более подробно на некоторых примерах для числового значения. Давайте рассмотрим следующую таблицу Student для примера.

RollNo StudentName StudentGender StudentAge StudentPercent AdmissionDate
1 George M 14 85 2018-01-01
2 Monica F 12 88 2018-01-31
3 Jessica F 13 84 2018-01-15
4 Tom M 11 78 2017-12-15

Я использую базу данных MySQL, и вот скрипт для создания и вставки примеров записей в таблицу Student.

CREATE TABLE `Student` (
  `rollno` int(11) unsigned NOT NULL,
  `studentname` varchar(20) DEFAULT NULL,
  `studentgender` varchar(5) DEFAULT NULL,
  `studentage` int(3) DEFAULT NULL,
  `studentpercent` int(3) DEFAULT NULL,
  `admissiondate` date DEFAULT NULL,
  PRIMARY KEY (`rollno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `Student` (`rollno`, `studentname`, `studentgender`, `studentage`, `studentpercent`, `admissiondate`)
VALUES
	(1, 'George', 'M', 14, 85, '2018-01-01'),
	(2, 'Monica', 'F', 12, 88, '2018-01-31'),
	(3, 'Jessica', 'F', 13, 84, '2018-01-15'),
	(4, 'Tom', 'M', 11, 78, '2017-12-15');

Сценарий: Получите процент учащихся в возрасте от 11 до 13 лет.

SELECT StudentPercent FROM Student WHERE StudentAge BETWEEN 11 AND 13;

Выход:

StudentPercent
88
84
78

Оператор SQL NOT BETWEEN для числового значения

Оператор SQL NOT BETWEEN используется для получения значений как части набора результатов, которые находятся за пределами диапазона, указанного оператором BETWEEN. Сценарий: Получите процент учащихся, возраст которых не находится между 11 и 13 годами.

SELECT StudentPercent FROM Student WHERE StudentAge NOT BETWEEN 11 AND 13;

Выход:

StudentPercent
85

Оператор SQL BETWEEN для текстового значения

Сценарий: Получите RollNo, StudentName и StudentAge, где StudentName находится между Джорджем и Джессикой.

SELECT RollNo, StudentName, StudentAge FROM Student WHERE StudentName BETWEEN 'George' AND 'Jessica';

Выход:

RollNo StudentName StudentAge
1 George 14
3 Jessica 13

Оператор SQL NOT BETWEEN для текстового значения

Сценарий: Получите RollNo, StudentName и StudentAge, где StudentName не находится между Джорджем и Джессикой.

SELECT RollNo, StudentName, StudentAge FROM Student WHERE StudentName NOT BETWEEN 'George' AND 'Jessica';

Выход:

RollNo StudentName StudentAge
2 Monica 12
4 Tom 11

Оператор SQL BETWEEN для значения даты

Сценарий: получите возраст учащихся, поступивших в период с 1 января 2018 года по 31 января 2018 года.

SELECT StudentAge FROM Student WHERE admissiondate BETWEEN str_to_date('2018-01-01', '%Y-%m-%d') AND '2018-01-31';

Выход:

StudentAge
14
12
13

Оператор SQL NOT BETWEEN для значения даты

Сценарий: получите возраст учащихся, поступивших не в период с 1 января 2018 года по 31 января 2018 года.

SELECT StudentAge FROM Student WHERE admissiondate NOT BETWEEN str_to_date('2018-01-01', '%Y-%m-%d') AND '2018-01-31';

Выход:

StudentAge
11

НЕСКОЛЬКО МЕЖДУ операторами

Мы также можем использовать несколько операторов между операторами. Его синтаксис:

SELECT Column(s) FROM table_name WHERE 
column_name BETWEEN value1 AND value2 
AND 
column_name BETWEEN value3 and value4 
... 
AND 
BETWEEN column_name BETWEEN valueN and valueM;

Используя вышеупомянутый синтаксис, мы можем использовать несколько операторов BETWEEN. Сценарий: Получите имя учащегося в возрасте от 10 до 13 лет и с оценками от 80 до 85 процентов.

SELECT StudentName FROM Student WHERE 
StudentAge BETWEEN 10 AND 13 
AND
StudentPercent BETWEEN 80 AND 85;