logo

SQL ORDENA PER DATA

  • ORDER BY és una clàusula en SQL que s'utilitza amb la consulta SELECT per obtenir els registres en ordre ascendent o descendent d'una taula.
  • De la mateixa manera que ordenem els valors enters i de cadena emmagatzemats a la columna de les taules, de la mateixa manera, podem ordenar les dates emmagatzemades a la columna de la taula SQL.
  • Tots els registres s'ordenaran, per defecte, en ordre ascendent. Per ordenar els registres en ordre descendent, s'utilitza la paraula clau DESC.

Vegem alguns exemples pràctics per entendre aquest concepte amb més claredat. Utilitzarem la base de dades MySQL per escriure totes les consultes.

Penseu que hem creat una taula anomenada com a empleats a la base de dades MySQL amb les dades següents:

si per resum de rudyard kipling
ID Nom Sou Data_unió Data de naixement
1 Rohit Més 50000 2020-02-08 1991-01-28 18:06:08
2 Kunal Mohit 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

Exemple 1:

Escriu una consulta per mostrar tots els detalls dels empleats ordenats en ordre ascendent de la seva data de naixement.

Consulta:

 mysql> SELECT *FROM employees ORDER BY DOB; 

Com que hem volgut ordenar els registres per ordre ascendent de la data de naixement dels empleats, hem aplicat la clàusula ORDER BY a la columna 'FD'.

Obtindreu la següent sortida:

ID Nom Sou Data_unió Data de naixement
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 Mohit 34000 2021-01-01 1990-05-15 19:10:00
1 Rohit Més 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

Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent del DOB.

Exemple 2:

Escriviu una consulta per mostrar tots els detalls dels empleats ordenats per ordre descendent de les dates d'incorporació.

Consulta:

 mysql> SELECT *FROM employees ORDER BY Joining_Date DESC; 

Com que volíem ordenar els registres en l'ordre decreixent de la data d'incorporació dels empleats, hem aplicat la clàusula ORDER BY amb la paraula clau DESC a la columna 'Joining_Date'.

Obtindreu la següent sortida:

ID Nom Sou Data_unió Data de naixement
6 Bhavesh Jain 37000 2021-07-03 1998-08-02 13:00:01
2 Kunal Mohit 34000 2021-01-01 1990-05-15 19:10:00
1 Rohit Més 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

Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre descendent de les dates d'unió.

Exemple 3:

Escriu una consulta per mostrar tots els detalls dels empleats ordenats per ordre ascendent del seu any de naixement.

Consulta:

 mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y'); 

Com que hem volgut ordenar els registres per ordre ascendent de l'any de naixement dels empleats, hem aplicat la clàusula ORDER BY. La funció DATE_FORMAT () s'aplica a la columna DOB amb el paràmetre '%Y' per extreure només l'any de 'DOB'.

Obtindreu la següent sortida:

ID Nom Sou Data_unió Any de naixement
4 Anant Desai 59000 2018-08-27 1978
3 Saurabh Jha 61000 2015-05-01 1983
2 Kunal Mohit 34000 2021-01-01 1990
1 Rohit Més 50000 2020-02-08 1991
6 Bhavesh Jain 37000 2021-07-03 1998
5 Krishna Sharma 48000 2010-10-23 1999

Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent de l'any de naixement de l'empleat.

Exemple 4:

Escriu una consulta per mostrar tots els detalls dels empleats ordenats per ordre decreixent de la seva hora de naixement.

Consulta:

 mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC; 

Com que volíem ordenar els registres per ordre descendent de l'hora de naixement dels empleats, hem aplicat la clàusula ORDER BY amb la paraula clau DESC. La funció DATE_FORMAT () s'aplica a la columna DOB amb el paràmetre '%H' per extreure només l'hora de naixement de la columna 'DOB'.

germans kylie jenner

Obtindreu la següent sortida:

ID Nom Sou Data_unió Hora_de_naixement
2 Kunal Mohit 34000 2021-01-01 19
1 Rohit Més 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

Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre decreixent de l'hora de naixement de l'empleat.

Exemple 5:

Escriviu una consulta per mostrar tots els detalls dels empleats ordenats per ordre ascendent de l'any d'incorporació.

Consulta:

 mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y'); 

Com que volíem ordenar els registres per ordre ascendent de l'any d'incorporació dels empleats, hem aplicat la clàusula ORDER BY. La funció DATE_FORMAT () s'aplica a la columna Joining_Date amb el paràmetre '%Y' per extreure només l'any de 'Joining_Date'.

Obtindreu la següent sortida:

ID Nom Sou Any_d'unió Data de naixement
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 Més 50000 2020 1991-01-28 18:06:08
2 Kunal Mohit 34000 2021 1990-05-15 19:10:00
6 Bhavesh Jain 37000 2021 1998-08-02 13:00:01

Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent de l'any d'incorporació dels empleats.

Exemple 6:

Escriu una consulta per mostrar tots els detalls dels empleats ordenats en ordre descendent del dia d'incorporació dels empleats.

Consulta:

actor chiranjeevi
 mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC; 

Com que volíem ordenar els registres per ordre descendent del dia d'incorporació dels empleats, hem aplicat la clàusula ORDER BY amb la paraula clau DESC. La funció DAY () s'aplica a la columna 'Joining_Date' per extreure només el dia d'unió de Joining_Date.

Obtindreu la següent sortida:

ID Nom Sou Dia_d'unió Data de naixement
4 Anant Desai 59000 27 1978-06-29 15:45:13
5 Krishna Sharma 48000 23 1999-03-21 02:14:56
1 Rohit Més 50000 8 1991-01-28 18:06:08
6 Bhavesh Jain 37000 3 1998-08-02 13:00:01
2 Kunal Mohit 34000 1 1990-05-15 19:10:00
3 Saurabh Jha 61000 1 1983-02-20 12:18:45

Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre decreixent del dia d'incorporació dels empleats.

Exemple 7:

Escriu una consulta per mostrar tots els detalls dels empleats ordenats en ordre ascendent del dia de naixement dels empleats.

Consulta:

 mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB); 

Com que hem volgut ordenar els registres per ordre ascendent del dia de naixement dels empleats, hem aplicat la clàusula ORDER BY. La funció DAY () s'aplica a la columna 'DATA' per extreure només el dia de naixement de la data de naixement.

Obtindreu la següent sortida:

ID Nom Sou Any_d'unió Dia_de_naixement
6 Bhavesh Jain 37000 2021-07-03 2
2 Kunal Mohit 34000 2021-01-01 15
3 Saurabh Jha 61000 2015-05-01 20
5 Krishna Sharma 48000 2010-10-23 21
1 Rohit Més 50000 2020-02-08 28
4 Anant Desai 59000 2018-08-27 29

Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent del dia de naixement de l'empleat.

Exemple 8:

millor somriure del món

Escriviu una consulta per mostrar tots els detalls dels empleats ordenats en ordre ascendent del mes de naixement de l'empleat.

Consulta:

 mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB); 

ID Nom Sou Data_unió Data de naixement
1 Rohit Més 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 Mohit 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

Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent del mes de naixement de l'empleat.

Exemple 9:

Escriviu una consulta per mostrar tots els detalls dels empleats ordenats en ordre ascendent del mes d'incorporació de l'empleat.

Consulta:

 mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date); 

Com que volíem ordenar els registres per ordre ascendent del mes d'incorporació dels empleats, hem aplicat la clàusula ORDER BY. La funció MONTH () s'aplica a la columna 'Joining_Date' per extreure només el mes d'unió de Joining_Date.

Obtindreu la següent sortida:

ID Nom Sou Data_unió Data de naixement
2 Kunal Mohit 34000 2021-01-01 1990-05-15 19:10:00
1 Rohit Més 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

Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent del mes d'incorporació de l'empleat.