MySQL 如何在计算日期时使用ORDER BY子句?

MySQL 如何在计算日期时使用ORDER BY子句?

如果我们在计算日期时使用ORDER BY子句,那么查找记录将更加方便。 为了理解此点,我们从表“Collegedetail”中获取以下数据-

mysql> Select * from Collegedetail;
+------+---------+------------+
| ID   | Country | Estb       |
+------+---------+------------+
| 111  | INDIA   | 2010-05-01 |
| 130  | INDIA   | 1995-10-25 |
| 139  | USA     | 1994-09-25 |
| 1539 | UK      | 2001-07-23 |
| 1545 | Russia  | 2010-07-30 |
+------+---------+------------+
5 rows in set (0.00 sec)

现在,假设我们想要计算一个学院有多少年历史,那么可以按以下方式完成-

mysql> Select ID, estb, CURDATE(),((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE( ),5)<RIGHT(estb,5))) AS 'YEARS_OLD' from collegedetail;
+------+------------+------------+-----------+
| ID   | estb       | CURDATE()  | YEARS_OLD |
+------+------------+------------+-----------+
| 111  | 2010-05-01 | 2017-11-30 |         7 |
| 130  | 1995-10-25 | 2017-11-30 |        22 |
| 139  | 1994-09-25 | 2017-11-30 |        23 |
| 1539 | 2001-07-23 | 2017-11-30 |        16 |
| 1545 | 2010-07-30 | 2017-11-30 |         7 |
+------+------------+------------+-----------+
5 rows in set (0.00 sec)

如果我们在计算一个学院有多少年历史时使用ORDER BY子句,那么我们的搜索会更加方便,如下所示-

mysql> Select ID, estb, CURDATE(),((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE(),5)<RIGHT(estb,5))) AS 'YEARS_OLD' from collegedetail ORDER BY YEARS_OLD;
+------+------------+------------+-----------+
| ID   | estb       | CURDATE()  | YEARS_OLD |
+------+------------+------------+-----------+
| 111  | 2010-05-01 | 2017-11-30 |         7 |
| 1545 | 2010-07-30 | 2017-11-30 |         7 |
| 1539 | 2001-07-23 | 2017-11-30 |        16 |
| 130  | 1995-10-25 | 2017-11-30 |        22 |
| 139  | 1994-09-25 | 2017-11-30 |        23 |
+------+------------+------------+-----------+
5 rows in set (0.01 sec)

以上结果集显示我们可以通过使用’YEARS_OLD’与ORER BY子句来轻松搜索最古老的学院。 我们还可以使用ORDER BY子句的DESC关键字,返回最古老的学院,如下所示-

mysql> Select ID, estb, CURDATE(),((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE(),5)<RIGHT(estb,5))) AS 'YEARS_OLD' from collegedetail ORDER BY YEARS_O
LD DESC;
+------+------------+------------+-----------+
| ID   | estb       | CURDATE()  | YEARS_OLD |
+------+------------+------------+-----------+
| 139  | 1994-09-25 | 2017-11-30 |        23 |
| 130  | 1995-10-25 | 2017-11-30 |        22 |
| 1539 | 2001-07-23 | 2017-11-30 |        16 |
| 111  | 2010-05-01 | 2017-11-30 |         7 |
| 1545 | 2010-07-30 | 2017-11-30 |         7 |
+------+------------+------------+-----------+
5 rows in set (0.00 sec)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程