Select*fromCollegedetail;+------+---------+--------- - --+|ID |Pays|Estb |+------+---------+------------+|111 |INDE |2"/> Select*fromCollegedetail;+------+---------+--------- - --+|ID |Pays|Estb |+------+---------+------------+|111 |INDE |2">

Maison  >  Article  >  base de données  >  Comment utiliser la clause ORDER BY lors du calcul des dates ?

Comment utiliser la clause ORDER BY lors du calcul des dates ?

PHPz
PHPzavant
2023-09-03 14:29:02795parcourir

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

Si nous utilisons la clause ORDER BY lors du calcul des dates, il sera plus pratique de trouver des enregistrements. Pour le comprendre, nous obtenons les données du tableau "Collegedetail" comme suit -

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)

Maintenant, supposons que nous voulions calculer le nombre d'années d'histoire d'un collège, alors cela peut être fait comme suit -

mysql> Select ID, estb, CURDATE(),((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE(),5)<RIGHT(estb,5))) AS &#39;YEARS_OLD&#39; 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)

Si nous calculons le nombre d'années d'établissement d'un collège. Notre recherche sera plus pratique en utilisant la clause ORDER BY suivante -

mysql> Select ID, estb, CURDATE(),((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE(),5)<RIGHT(estb,5))) AS &#39;YEARS_OLD&#39; 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)

L'ensemble de résultats ci-dessus montre que nous pouvons rechercher très facilement l'université la plus ancienne en utilisant la clause ORER BY avec " ANS_OLD". Nous pouvons également utiliser le mot-clé DESC avec la clause ORDER BY qui renvoie l'université la plus ancienne dans la rangée supérieure, comme indiqué ci-dessous -

mysql> Select ID, estb, CURDATE(),((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE(),5)<RIGHT(estb,5))) AS &#39;YEARS_OLD&#39; 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)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer