
如果我们在计算日期时使用 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 子句非常轻松地搜索最古老的大学。我们还可以将 DESC 关键字与 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_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) 登录后复制 |