logo

SQL ORDEM POR DATA

  • ORDER BY é uma cláusula SQL que é usada com a consulta SELECT para buscar os registros em ordem crescente ou decrescente de uma tabela.
  • Assim como classificamos os valores inteiros e de string armazenados na coluna das tabelas, da mesma forma, podemos classificar as datas armazenadas na coluna da tabela SQL.
  • Todos os registros serão, por padrão, classificados em ordem crescente. Para ordenar os registros em ordem decrescente, é utilizada a palavra-chave DESC.

Vejamos alguns exemplos práticos para entender esse conceito com mais clareza. Usaremos o banco de dados MySQL para escrever todas as consultas.

Considere que criamos uma tabela denominada funcionários no banco de dados MySQL com os seguintes dados:

EU IA Nome Salário Data de ingresso Data de nascimento
1 RohitMais 50.000 08/02/2020 28/01/1991 18:06:08
2 Kunal Mohit 34.000 2021-01-01 15/05/1990 19:10:00
3 Saurabh Jha 61.000 01-05-2015 20/02/1983 12:18:45
4 Anant Desai 59.000 27/08/2018 29/06/1978 15:45:13
5 Krishna Sharma 48.000 23/10/2010 21/03/1999 02:14:56
6 Bhavesh Jain 37.000 03/07/2021 02/08/1998 13:00:01

Exemplo 1:

Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente de data de nascimento.

Consulta:

 mysql> SELECT *FROM employees ORDER BY DOB; 

Como queríamos ordenar os registros em ordem crescente de data de nascimento dos funcionários, aplicamos a cláusula ORDER BY na coluna 'DOB'.

Você obterá a seguinte saída:

EU IA Nome Salário Data de ingresso Data de nascimento
4 Anant Desai 59.000 27/08/2018 29/06/1978 15:45:13
3 Saurabh Jha 61.000 01-05-2015 20/02/1983 12:18:45
2 Kunal Mohit 34.000 2021-01-01 15/05/1990 19:10:00
1 RohitMais 50.000 08/02/2020 28/01/1991 18:06:08
6 Bhavesh Jain 37.000 03/07/2021 02/08/1998 13:00:01
5 Krishna Sharma 48.000 23/10/2010 21/03/1999 02:14:56

Os resultados obtidos na consulta acima mostram que os registros são exibidos em ordem crescente de DOB.

Exemplo 2:

Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem decrescente de datas de ingresso.

Consulta:

 mysql> SELECT *FROM employees ORDER BY Joining_Date DESC; 

Como queríamos ordenar os registros em ordem decrescente da data de adesão dos funcionários, aplicamos a cláusula ORDER BY com a palavra-chave DESC na coluna 'Data_de_ingresso'.

pesquisa binária

Você obterá a seguinte saída:

EU IA Nome Salário Data de ingresso Data de nascimento
6 Bhavesh Jain 37.000 03/07/2021 02/08/1998 13:00:01
2 Kunal Mohit 34.000 2021-01-01 15/05/1990 19:10:00
1 RohitMais 50.000 08/02/2020 28/01/1991 18:06:08
4 Anant Desai 59.000 27/08/2018 29/06/1978 15:45:13
3 Saurabh Jha 61.000 01-05-2015 20/02/1983 12:18:45
5 Krishna Sharma 48.000 23/10/2010 21/03/1999 02:14:56

Os resultados obtidos na consulta acima mostram que os registros são exibidos em ordem decrescente das datas de adesão.

Exemplo 3:

Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente de ano de nascimento.

quantos zero por um milhão

Consulta:

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

Como queríamos ordenar os registros em ordem crescente do ano de nascimento dos funcionários, aplicamos a cláusula ORDER BY. A função DATE_FORMAT() é aplicada na coluna DOB com o parâmetro '%Y' para extrair apenas o ano de 'DOB'.

Você obterá a seguinte saída:

EU IA Nome Salário Data de ingresso Ano de nascimento
4 Anant Desai 59.000 27/08/2018 1978
3 Saurabh Jha 61.000 01-05-2015 1983
2 Kunal Mohit 34.000 2021-01-01 1990
1 RohitMais 50.000 08/02/2020 1991
6 Bhavesh Jain 37.000 03/07/2021 1998
5 Krishna Sharma 48.000 23/10/2010 1999

Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem crescente do ano de nascimento do funcionário.

Exemplo 4:

Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem decrescente de hora de nascimento.

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; 

Como queríamos ordenar os registros em ordem decrescente da hora de nascimento dos funcionários, aplicamos a cláusula ORDER BY com a palavra-chave DESC. A função DATE_FORMAT() é aplicada na coluna DOB com o parâmetro '%H' para extrair apenas a hora do nascimento da coluna'DOB'.

Você obterá a seguinte saída:

EU IA Nome Salário Data de ingresso Hora_de_nascimento
2 Kunal Mohit 34.000 2021-01-01 19
1 RohitMais 50.000 08/02/2020 18
4 Anant Desai 59.000 27/08/2018 quinze
6 Bhavesh Jain 37.000 03/07/2021 13
3 Saurabh Jha 61.000 01-05-2015 12
5 Krishna Sharma 48.000 23/10/2010 02

Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem decrescente da hora de nascimento do funcionário.

Exemplo 5:

diferença entre $ e $$

Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente de ano de ingresso.

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'); 

Como queríamos ordenar os registros em ordem crescente do ano de adesão dos funcionários, aplicamos a cláusula ORDER BY. A função DATE_FORMAT() é aplicada na coluna Joining_Date com o parâmetro '%Y' para extrair apenas o ano de 'Joining_Date'.

Você obterá a seguinte saída:

EU IA Nome Salário Ano_de_entrada Data de nascimento
5 Krishna Sharma 48.000 2010 21/03/1999 02:14:56
3 Saurabh Jha 61.000 2015 20/02/1983 12:18:45
4 Anant Desai 59.000 2018 29/06/1978 15:45:13
1 RohitMais 50.000 2020 28/01/1991 18:06:08
2 Kunal Mohit 34.000 2021 15/05/1990 19:10:00
6 Bhavesh Jain 37.000 2021 02/08/1998 13:00:01

Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem crescente de ano de ingresso dos funcionários.

Exemplo 6:

Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem decrescente do dia de adesão dos funcionários.

Consulta:

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

Como queríamos ordenar os registros em ordem decrescente do dia de adesão dos funcionários, aplicamos a cláusula ORDER BY com a palavra-chave DESC. A função DAY() é aplicada na coluna 'Joining_Date' para extrair apenas o dia da adesão de Joining_Date.

Você obterá a seguinte saída:

EU IA Nome Salário Dia_de_entrada Data de nascimento
4 Anant Desai 59.000 27 29/06/1978 15:45:13
5 Krishna Sharma 48.000 23 21/03/1999 02:14:56
1 RohitMais 50.000 8 28/01/1991 18:06:08
6 Bhavesh Jain 37.000 3 02/08/1998 13:00:01
2 Kunal Mohit 34.000 1 15/05/1990 19:10:00
3 Saurabh Jha 61.000 1 20/02/1983 12:18:45

Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem decrescente do dia de entrada dos funcionários.

Exemplo 7:

Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente de data de nascimento dos funcionários.

Consulta:

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

Como queríamos ordenar os registros em ordem crescente do dia de nascimento dos funcionários, aplicamos a cláusula ORDER BY. A função DAY() é aplicada na coluna ‘DOB’ para extrair apenas o dia de nascimento do DOB.

Você obterá a seguinte saída:

EU IA Nome Salário Ano_de_entrada Dia de nascimento
6 Bhavesh Jain 37.000 03/07/2021 2
2 Kunal Mohit 34.000 2021-01-01 quinze
3 Saurabh Jha 61.000 01-05-2015 vinte
5 Krishna Sharma 48.000 23/10/2010 vinte e um
1 RohitMais 50.000 08/02/2020 28
4 Anant Desai 59.000 27/08/2018 29

Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem crescente do dia de nascimento do funcionário.

Exemplo 8:

Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente do mês de nascimento do funcionário.

Consulta:

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

EU IA Nome Salário Data de ingresso Data de nascimento
1 RohitMais 50.000 08/02/2020 28/01/1991 18:06:08
3 Saurabh Jha 61.000 01-05-2015 20/02/1983 12:18:45
5 Krishna Sharma 48.000 23/10/2010 21/03/1999 02:14:56
2 Kunal Mohit 34.000 2021-01-01 15/05/1990 19:10:00
4 Anant Desai 59.000 27/08/2018 29/06/1978 15:45:13
6 Bhavesh Jain 37.000 03/07/2021 02/08/1998 13:00:01

Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem crescente do mês de nascimento do funcionário.

Exemplo 9:

Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente do mês de ingresso do funcionário.

chacal vs lobo

Consulta:

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

Como queríamos ordenar os registros em ordem crescente do mês de adesão dos funcionários, aplicamos a cláusula ORDER BY. A função MONTH() é aplicada na coluna 'Joining_Date' para extrair apenas o mês de adesão de Joining_Date.

Você obterá a seguinte saída:

EU IA Nome Salário Data de ingresso Data de nascimento
2 Kunal Mohit 34.000 2021-01-01 15/05/1990 19:10:00
1 RohitMais 50.000 08/02/2020 28/01/1991 18:06:08
3 Saurabh Jha 61.000 01-05-2015 20/02/1983 12:18:45
6 Bhavesh Jain 37.000 03/07/2021 02/08/1998 13:00:01
4 Anant Desai 59.000 27/08/2018 29/06/1978 15:45:13
5 Krishna Sharma 48.000 23/10/2010 21/03/1999 02:14:56

Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem crescente do mês de adesão do funcionário.