SQL ORDER BY DATE

2024年8月29日 | 阅读 7 分钟
  • ORDER BY 是 SQL 中的一个子句,用于与 SELECT 查询一起使用,以升序或降序从表中检索记录。
  • 就像我们对表中列存储的整数和字符串值进行排序一样,我们也可以对 SQL 表列中存储的日期进行排序。
  • 默认情况下,所有记录都将按升序排序。要按降序对记录进行排序,请使用 DESC 关键字。

让我们看几个实际的例子来更清楚地理解这个概念。我们将使用 MySQL 数据库来编写所有查询。

假设我们在 MySQL 数据库中创建了一个名为 employees 的表,其中包含以下数据

ID名称薪金Joining_DateDOB
1Rohit More500002020-02-081991-01-28 18:06:08
2Kunal Mohite340002021-01-011990-05-15 19:10:00
3Saurabh Jha610002015-05-011983-02-20 12:18:45
4Anant Desai590002018-08-271978-06-29 15:45:13
5Krishna Sharma480002010-10-231999-03-21 02:14:56
6Bhavesh Jain370002021-07-031998-08-02 13:00:01

示例 1

编写一个查询,按出生日期升序显示所有员工的详细信息。

查询

由于我们希望按员工出生日期升序对记录进行排序,因此我们在 'DOB' 列上应用了 ORDER BY 子句。

您将得到以下输出

ID名称薪金Joining_DateDOB
4Anant Desai590002018-08-271978-06-29 15:45:13
3Saurabh Jha610002015-05-011983-02-20 12:18:45
2Kunal Mohite340002021-01-011990-05-15 19:10:00
1Rohit More500002020-02-081991-01-28 18:06:08
6Bhavesh Jain370002021-07-031998-08-02 13:00:01
5Krishna Sharma480002010-10-231999-03-21 02:14:56

上述查询获得的结果表明,记录是按照 DOB 的升序显示的。

示例 2

编写一个查询,按入职日期降序显示所有员工的详细信息。

查询

由于我们希望按员工入职日期降序对记录进行排序,因此我们在 ORDER BY 子句中使用了 DESC 关键字,并在 'Joining_Date' 列上进行了排序。

您将得到以下输出

ID名称薪金Joining_DateDOB
6Bhavesh Jain370002021-07-031998-08-02 13:00:01
2Kunal Mohite340002021-01-011990-05-15 19:10:00
1Rohit More500002020-02-081991-01-28 18:06:08
4Anant Desai590002018-08-271978-06-29 15:45:13
3Saurabh Jha610002015-05-011983-02-20 12:18:45
5Krishna Sharma480002010-10-231999-03-21 02:14:56

上述查询获得的结果表明,记录是按照入职日期降序显示的。

示例 3

编写一个查询,按出生年份升序显示所有员工的详细信息。

查询

由于我们希望按员工出生年份升序对记录进行排序,因此我们应用了 ORDER BY 子句。DATE_FORMAT() 函数应用于 DOB 列,参数为 '%Y',以便仅提取 'DOB' 中的年份。

您将得到以下输出

ID名称薪金Joining_DateYear_Of_Birth
4Anant Desai590002018-08-271978
3Saurabh Jha610002015-05-011983
2Kunal Mohite340002021-01-011990
1Rohit More500002020-02-081991
6Bhavesh Jain370002021-07-031998
5Krishna Sharma480002010-10-231999

上述查询获得的结果表明,记录是按照员工出生年份升序显示的。

示例 4

编写一个查询,按出生小时降序显示所有员工的详细信息。

查询

由于我们希望按员工出生小时降序对记录进行排序,因此我们应用了 ORDER BY 子句以及 DESC 关键字。DATE_FORMAT() 函数应用于 DOB 列,参数为 '%H',以便仅提取 'DOB' 列中的出生小时。

您将得到以下输出

ID名称薪金Joining_DateHour_Of_Birth
2Kunal Mohite340002021-01-0119
1Rohit More500002020-02-0818
4Anant Desai590002018-08-2715
6Bhavesh Jain370002021-07-0313
3Saurabh Jha610002015-05-0112
5Krishna Sharma480002010-10-2302

上述查询获得的结果表明,记录是按照员工出生小时降序显示的。

示例 5

编写一个查询,按入职年份升序显示所有员工的详细信息。

查询

由于我们希望按员工入职年份升序对记录进行排序,因此我们应用了 ORDER BY 子句。DATE_FORMAT() 函数应用于 Joining_Date 列,参数为 '%Y',以便仅提取 'Joining_Date' 中的年份。

您将得到以下输出

ID名称薪金Year_Of_JoiningDOB
5Krishna Sharma4800020101999-03-21 02:14:56
3Saurabh Jha6100020151983-02-20 12:18:45
4Anant Desai5900020181978-06-29 15:45:13
1Rohit More5000020201991-01-28 18:06:08
2Kunal Mohite3400020211990-05-15 19:10:00
6Bhavesh Jain3700020211998-08-02 13:00:01

上述查询获得的结果表明,记录是按照员工入职年份升序显示的。

示例 6

编写一个查询,按员工入职日期降序显示所有员工的详细信息。

查询

由于我们希望按员工入职日期降序对记录进行排序,因此我们应用了 ORDER BY 子句以及 DESC 关键字。DAY() 函数应用于 'Joining_Date' 列,以便仅提取 Joining_Date 中的入职日期。

您将得到以下输出

ID名称薪金Day_Of_JoiningDOB
4Anant Desai59000271978-06-29 15:45:13
5Krishna Sharma48000231999-03-21 02:14:56
1Rohit More5000081991-01-28 18:06:08
6Bhavesh Jain3700031998-08-02 13:00:01
2Kunal Mohite3400011990-05-15 19:10:00
3Saurabh Jha6100011983-02-20 12:18:45

上述查询获得的结果表明,记录是按照员工入职日期降序显示的。

示例 7

编写一个查询,按员工出生日期升序显示所有员工的详细信息。

查询

由于我们希望按员工出生日期升序对记录进行排序,因此我们应用了 ORDER BY 子句。DAY() 函数应用于 'DOB' 列,以便仅提取 DOB 中的出生日期。

您将得到以下输出

ID名称薪金Year_Of_JoiningDay_Of_Birth
6Bhavesh Jain370002021-07-032
2Kunal Mohite340002021-01-0115
3Saurabh Jha610002015-05-0120
5Krishna Sharma480002010-10-2321
1Rohit More500002020-02-0828
4Anant Desai590002018-08-2729

上述查询获得的结果表明,记录是按照员工出生日期升序显示的。

示例 8

编写一个查询,按员工出生月份升序显示所有员工的详细信息。

查询


ID名称薪金Joining_DateDOB
1Rohit More500002020-02-081991-01-28 18:06:08
3Saurabh Jha610002015-05-011983-02-20 12:18:45
5Krishna Sharma480002010-10-231999-03-21 02:14:56
2Kunal Mohite340002021-01-011990-05-15 19:10:00
4Anant Desai590002018-08-271978-06-29 15:45:13
6Bhavesh Jain370002021-07-031998-08-02 13:00:01

上述查询获得的结果表明,记录是按照员工出生月份升序显示的。

示例 9

编写一个查询,按员工入职月份升序显示所有员工的详细信息。

查询

由于我们希望按员工入职月份升序对记录进行排序,因此我们应用了 ORDER BY 子句。MONTH() 函数应用于 'Joining_Date' 列,以便仅提取 Joining_Date 中的入职月份。

您将得到以下输出

ID名称薪金Joining_DateDOB
2Kunal Mohite340002021-01-011990-05-15 19:10:00
1Rohit More500002020-02-081991-01-28 18:06:08
3Saurabh Jha610002015-05-011983-02-20 12:18:45
6Bhavesh Jain370002021-07-031998-08-02 13:00:01
4Anant Desai590002018-08-271978-06-29 15:45:13
5Krishna Sharma480002010-10-231999-03-21 02:14:56

上述查询获得的结果表明,记录是按照员工入职月份升序显示的。