Select*fromCollegedetail;+------+---------+--------- - --+|ID |Negara|Estb |+------+---------+------------+|111 |INDIA |2"/> Select*fromCollegedetail;+------+---------+--------- - --+|ID |Negara|Estb |+------+---------+------------+|111 |INDIA |2">

Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menggunakan klausa ORDER BY semasa mengira tarikh?

Bagaimana untuk menggunakan klausa ORDER BY semasa mengira tarikh?

PHPz
PHPzke hadapan
2023-09-03 14:29:02795semak imbas

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

Jika kita menggunakan klausa ORDER BY semasa mengira tarikh, adalah lebih mudah untuk mencari rekod. Untuk memahaminya, kita mendapat data dari jadual "Collegedetail" seperti berikut -

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)

Sekarang, andaikan kita ingin mengira bilangan tahun sejarah sesebuah kolej, maka ia boleh dilakukan seperti berikut -

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)

Jika kita sedang mengira bilangan tahun penubuhan kolej Pencarian kami akan lebih mudah menggunakan klausa ORDER BY berikut -

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)

Set keputusan di atas menunjukkan bahawa kita boleh mencari universiti tertua dengan mudah dengan menggunakan klausa ORER BY dengan " YEARS_OLD". Kami juga boleh menggunakan kata kunci DESC dengan klausa ORDER BY yang mengembalikan universiti tertua di baris atas seperti yang ditunjukkan di bawah -

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)

Atas ialah kandungan terperinci Bagaimana untuk menggunakan klausa ORDER BY semasa mengira tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam