SQL ORDER BY DATE2024年8月29日 | 阅读 7 分钟 - ORDER BY 是 SQL 中的一个子句,用于与 SELECT 查询一起使用,以升序或降序从表中检索记录。
- 就像我们对表中列存储的整数和字符串值进行排序一样,我们也可以对 SQL 表列中存储的日期进行排序。
- 默认情况下,所有记录都将按升序排序。要按降序对记录进行排序,请使用 DESC 关键字。
让我们看几个实际的例子来更清楚地理解这个概念。我们将使用 MySQL 数据库来编写所有查询。 假设我们在 MySQL 数据库中创建了一个名为 employees 的表,其中包含以下数据 ID | 名称 | 薪金 | Joining_Date | DOB |
---|
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 | 2 | Kunal Mohite | 34000 | 2021-01-01 | 1990-05-15 19:10:00 | 3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 | 4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 | 5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 | 6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
示例 1 编写一个查询,按出生日期升序显示所有员工的详细信息。 查询 由于我们希望按员工出生日期升序对记录进行排序,因此我们在 'DOB' 列上应用了 ORDER BY 子句。 您将得到以下输出 ID | 名称 | 薪金 | Joining_Date | DOB |
---|
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 | 3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 | 2 | Kunal Mohite | 34000 | 2021-01-01 | 1990-05-15 19:10:00 | 1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 | 6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 | 5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
上述查询获得的结果表明,记录是按照 DOB 的升序显示的。 示例 2 编写一个查询,按入职日期降序显示所有员工的详细信息。 查询 由于我们希望按员工入职日期降序对记录进行排序,因此我们在 ORDER BY 子句中使用了 DESC 关键字,并在 'Joining_Date' 列上进行了排序。 您将得到以下输出 ID | 名称 | 薪金 | Joining_Date | DOB |
---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 | 2 | Kunal Mohite | 34000 | 2021-01-01 | 1990-05-15 19:10:00 | 1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 | 4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 | 3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 | 5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
上述查询获得的结果表明,记录是按照入职日期降序显示的。 示例 3 编写一个查询,按出生年份升序显示所有员工的详细信息。 查询 由于我们希望按员工出生年份升序对记录进行排序,因此我们应用了 ORDER BY 子句。DATE_FORMAT() 函数应用于 DOB 列,参数为 '%Y',以便仅提取 'DOB' 中的年份。 您将得到以下输出 ID | 名称 | 薪金 | Joining_Date | Year_Of_Birth |
---|
4 | Anant Desai | 59000 | 2018-08-27 | 1978 | 3 | Saurabh Jha | 61000 | 2015-05-01 | 1983 | 2 | Kunal Mohite | 34000 | 2021-01-01 | 1990 | 1 | Rohit More | 50000 | 2020-02-08 | 1991 | 6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998 | 5 | Krishna Sharma | 48000 | 2010-10-23 | 1999 |
上述查询获得的结果表明,记录是按照员工出生年份升序显示的。 示例 4 编写一个查询,按出生小时降序显示所有员工的详细信息。 查询 由于我们希望按员工出生小时降序对记录进行排序,因此我们应用了 ORDER BY 子句以及 DESC 关键字。DATE_FORMAT() 函数应用于 DOB 列,参数为 '%H',以便仅提取 'DOB' 列中的出生小时。 您将得到以下输出 ID | 名称 | 薪金 | Joining_Date | Hour_Of_Birth |
---|
2 | Kunal Mohite | 34000 | 2021-01-01 | 19 | 1 | Rohit More | 50000 | 2020-02-08 | 18 | 4 | Anant Desai | 59000 | 2018-08-27 | 15 | 6 | Bhavesh Jain | 37000 | 2021-07-03 | 13 | 3 | Saurabh Jha | 61000 | 2015-05-01 | 12 | 5 | Krishna Sharma | 48000 | 2010-10-23 | 02 |
上述查询获得的结果表明,记录是按照员工出生小时降序显示的。 示例 5 编写一个查询,按入职年份升序显示所有员工的详细信息。 查询 由于我们希望按员工入职年份升序对记录进行排序,因此我们应用了 ORDER BY 子句。DATE_FORMAT() 函数应用于 Joining_Date 列,参数为 '%Y',以便仅提取 'Joining_Date' 中的年份。 您将得到以下输出 ID | 名称 | 薪金 | Year_Of_Joining | DOB |
---|
5 | Krishna Sharma | 48000 | 2010 | 1999-03-21 02:14:56 | 3 | Saurabh Jha | 61000 | 2015 | 1983-02-20 12:18:45 | 4 | Anant Desai | 59000 | 2018 | 1978-06-29 15:45:13 | 1 | Rohit More | 50000 | 2020 | 1991-01-28 18:06:08 | 2 | Kunal Mohite | 34000 | 2021 | 1990-05-15 19:10:00 | 6 | Bhavesh Jain | 37000 | 2021 | 1998-08-02 13:00:01 |
上述查询获得的结果表明,记录是按照员工入职年份升序显示的。 示例 6 编写一个查询,按员工入职日期降序显示所有员工的详细信息。 查询 由于我们希望按员工入职日期降序对记录进行排序,因此我们应用了 ORDER BY 子句以及 DESC 关键字。DAY() 函数应用于 'Joining_Date' 列,以便仅提取 Joining_Date 中的入职日期。 您将得到以下输出 ID | 名称 | 薪金 | Day_Of_Joining | DOB |
---|
4 | Anant Desai | 59000 | 27 | 1978-06-29 15:45:13 | 5 | Krishna Sharma | 48000 | 23 | 1999-03-21 02:14:56 | 1 | Rohit More | 50000 | 8 | 1991-01-28 18:06:08 | 6 | Bhavesh Jain | 37000 | 3 | 1998-08-02 13:00:01 | 2 | Kunal Mohite | 34000 | 1 | 1990-05-15 19:10:00 | 3 | Saurabh Jha | 61000 | 1 | 1983-02-20 12:18:45 |
上述查询获得的结果表明,记录是按照员工入职日期降序显示的。 示例 7 编写一个查询,按员工出生日期升序显示所有员工的详细信息。 查询 由于我们希望按员工出生日期升序对记录进行排序,因此我们应用了 ORDER BY 子句。DAY() 函数应用于 'DOB' 列,以便仅提取 DOB 中的出生日期。 您将得到以下输出 ID | 名称 | 薪金 | Year_Of_Joining | Day_Of_Birth |
---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 2 | 2 | Kunal Mohite | 34000 | 2021-01-01 | 15 | 3 | Saurabh Jha | 61000 | 2015-05-01 | 20 | 5 | Krishna Sharma | 48000 | 2010-10-23 | 21 | 1 | Rohit More | 50000 | 2020-02-08 | 28 | 4 | Anant Desai | 59000 | 2018-08-27 | 29 |
上述查询获得的结果表明,记录是按照员工出生日期升序显示的。 示例 8 编写一个查询,按员工出生月份升序显示所有员工的详细信息。 查询
ID | 名称 | 薪金 | Joining_Date | DOB |
---|
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 | 3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 | 5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 | 2 | Kunal Mohite | 34000 | 2021-01-01 | 1990-05-15 19:10:00 | 4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 | 6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
上述查询获得的结果表明,记录是按照员工出生月份升序显示的。 示例 9 编写一个查询,按员工入职月份升序显示所有员工的详细信息。 查询 由于我们希望按员工入职月份升序对记录进行排序,因此我们应用了 ORDER BY 子句。MONTH() 函数应用于 'Joining_Date' 列,以便仅提取 Joining_Date 中的入职月份。 您将得到以下输出 ID | 名称 | 薪金 | Joining_Date | DOB |
---|
2 | Kunal Mohite | 34000 | 2021-01-01 | 1990-05-15 19:10:00 | 1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 | 3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 | 6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 | 4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 | 5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
上述查询获得的结果表明,记录是按照员工入职月份升序显示的。
|