SQL 之间, MySQL 日期之间, 非之间

SQL BETWEEN 运算符与 WHERE条款一起使用,以提供一个值范围。值可以是数值、文本值和日期。 SQL BETWEEN 运算符几乎与 SQL IN运算符相似,以序列的方式使用。值被定义为 BETWEEN 范围的一部分,即包含在范围内所提到的值在开始和结束值中。让我们详细讨论 BETWEEN 运算符。

同义词之间

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

使用上述语法,我们可以将值定义为 BETWEEN 运算器的一部分,并且上述语法对于使用数字值、文本值和日期值仍然相同。

SQL BETWEEN 数值运算器

我们将通过数值的几个示例更详细地理解上述语法. 让我们以以下学生表为示例的目的来考虑。

RollNoStudentNameStudentGenderStudentAgeStudentPercentAdmissionDate
1GeorgeM14852018-01-01
2MonicaF12882018-01-31
3JessicaF13842018-01-15
4TomM11782017-12-15

我正在使用MySQL数据库,这里是创建和插入学生表中的示例记录的脚本。

 1CREATE TABLE `Student` (
 2  `rollno` int(11) unsigned NOT NULL,
 3  `studentname` varchar(20) DEFAULT NULL,
 4  `studentgender` varchar(5) DEFAULT NULL,
 5  `studentage` int(3) DEFAULT NULL,
 6  `studentpercent` int(3) DEFAULT NULL,
 7  `admissiondate` date DEFAULT NULL,
 8  PRIMARY KEY (`rollno`)
 9) ENGINE=InnoDB DEFAULT CHARSET=utf8;
10
11INSERT INTO `Student` (`rollno`, `studentname`, `studentgender`, `studentage`, `studentpercent`, `admissiondate`)
12VALUES
13    (1, 'George', 'M', 14, 85, '2018-01-01'),
14    (2, 'Monica', 'F', 12, 88, '2018-01-31'),
15    (3, 'Jessica', 'F', 13, 84, '2018-01-15'),
16    (4, 'Tom', 'M', 11, 78, '2017-12-15');

场景:获取学生年龄在11岁至13岁之间的百分比。

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

输出:

StudentPercent
88
84
78

SQL Between Clause example

SQL NOT BETWEEN 数值运算器

使用 SQL NOT BETWEEN 运算符来获取值作为结果集的一部分,这些值不在 BETWEEN 运算符所指定的范围之外。

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

输出:

StudentPercent
85

sql not between example

SQL BETWEEN 操作器为文本值

** 场景**:获取RollNo、学生名和学生年龄,学生名位于乔治和杰西卡之间。

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

输出:

RollNoStudentNameStudentAge
1George14
3Jessica13

SQL NOT BETWEEN 文本值运算器

** 场景**:获取学生名、学生名和学生年龄,学生名不在乔治和杰西卡之间。

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

输出:

RollNoStudentNameStudentAge
2Monica12
4Tom11

SQL BETWEEN 运算器为日期值

场景:获取2018年1月1日至2018年1月31日之间入学的学生的年龄。

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

输出:

StudentAge
14
12
13

Note that I am using MySQL native function str_to_date to convert string to date. If the string is in default format, we can use it as-is too, just as I have used for the second argument. If you are using Oracle DB, then corresponding function is TO_DATE. SQL Between Date Example

SQL NOT BETWEEN 日期值运算器

场景:获取学生的年龄,其入学时间不在2018年1月1日至2018年1月31日之间。

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

输出:

StudentAge
11

多个运营商之间

我们也可以使用多个操作员之间的语法,其语法是:

1SELECT Column(s) FROM table_name WHERE 
2column_name BETWEEN value1 AND value2 
3AND 
4column_name BETWEEN value3 and value4 
5... 
6AND 
7BETWEEN column_name BETWEEN valueN and valueM;

使用上述语法,我们可以使用多个 BETWEEN 运算符。 ** 场景**:获取学生名称,年龄在 10 到 13 岁之间,标记在 80 到 85 个百分点之间。

1SELECT StudentName FROM Student WHERE 
2StudentAge BETWEEN 10 AND 13 
3AND
4StudentPercent BETWEEN 80 AND 85;

Output: SQL Multiple Between Operators

Published At
Categories with 技术
Tagged with
comments powered by Disqus