logo

ZAMÓWIENIE SQL WEDŁUG DATY

  • ORDER BY to klauzula w języku SQL używana z zapytaniem SELECT w celu pobrania rekordów z tabeli w kolejności rosnącej lub malejącej.
  • Podobnie jak sortujemy liczby całkowite i wartości łańcuchowe zapisane w kolumnie tabel, podobnie możemy sortować daty zapisane w kolumnie tabeli SQL.
  • Wszystkie rekordy zostaną domyślnie posortowane w kolejności rosnącej. Aby posortować rekordy w kolejności malejącej, stosuje się słowo kluczowe DESC.

Zobaczmy kilka praktycznych przykładów, aby lepiej zrozumieć tę koncepcję. Do zapisywania wszystkich zapytań będziemy używać bazy danych MySQL.

Rozważmy, że utworzyliśmy tabelę o nazwie pracownicy w bazie danych MySQL z następującymi danymi:

ID Nazwa Wynagrodzenie Data przyłączenia DOB
1 Rohit Więcej 50000 2020-02-08 28.01.1991 18:06:08
2 Kunala Mohita 34000 2021-01-01 15.05.1990 19:10:00
3 Saurabh Jha 61000 2015-05-01 20.02.1983 12:18:45
4 Anant Desai 59000 27.08.2018 29.06.1978 15:45:13
5 Kryszna Sharma 48000 23.10.2010 21.03.1999 02:14:56
6 Bhavesh Jain 37000 2021-07-03 1998-08-02 13:00:01

Przykład 1:

Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według daty urodzenia.

Zapytanie:

 mysql> SELECT *FROM employees ORDER BY DOB; 

Ponieważ chcieliśmy posortować rekordy rosnąco według dat urodzenia pracowników, zastosowaliśmy klauzulę ORDER BY w kolumnie „DOB”.

Otrzymasz następujące dane wyjściowe:

ID Nazwa Wynagrodzenie Data przyłączenia DOB
4 Anant Desai 59000 27.08.2018 29.06.1978 15:45:13
3 Saurabh Jha 61000 2015-05-01 20.02.1983 12:18:45
2 Kunala Mohite’a 34000 2021-01-01 15.05.1990 19:10:00
1 Rohit Więcej 50000 2020-02-08 28.01.1991 18:06:08
6 Bhavesh Jain 37000 2021-07-03 1998-08-02 13:00:01
5 Kryszna Sharma 48000 23.10.2010 21.03.1999 02:14:56

Wyniki uzyskane z powyższego zapytania pokazują, że rekordy są wyświetlane według rosnącej kolejności DOB.

Przykład 2:

Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności malejącej według dat dołączenia.

Zapytanie:

 mysql> SELECT *FROM employees ORDER BY Joining_Date DESC; 

Ponieważ chcieliśmy posortować rekordy w kolejności malejącej według daty dołączenia pracowników, zastosowaliśmy klauzulę ORDER BY ze słowem kluczowym DESC w kolumnie „Data_dołączenia”.

Otrzymasz następujące dane wyjściowe:

ID Nazwa Wynagrodzenie Data przyłączenia DOB
6 Bhavesh Jain 37000 2021-07-03 1998-08-02 13:00:01
2 Kunala Mohite’a 34000 2021-01-01 15.05.1990 19:10:00
1 Rohit Więcej 50000 2020-02-08 28.01.1991 18:06:08
4 Anant Desai 59000 27.08.2018 29.06.1978 15:45:13
3 Saurabh Jha 61000 2015-05-01 20.02.1983 12:18:45
5 Kryszna Sharma 48000 23.10.2010 21.03.1999 02:14:56

Wyniki uzyskane z powyższego zapytania pokazują, że rekordy są wyświetlane według malejącej kolejności dat połączenia.

Przykład 3:

Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według roku urodzenia.

Zapytanie:

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

Ponieważ chcieliśmy posortować rekordy rosnąco według roku urodzenia pracowników, zastosowaliśmy klauzulę ORDER BY. Funkcja DATE_FORMAT () jest stosowana w kolumnie DOB z parametrem „%Y”, aby wyodrębnić tylko rok z „DOB”.

Otrzymasz następujące dane wyjściowe:

ID Nazwa Wynagrodzenie Data przyłączenia Rok urodzenia
4 Anant Desai 59000 27.08.2018 1978
3 Saurabh Jha 61000 2015-05-01 1983
2 Kunala Mohita 34000 2021-01-01 1990
1 Rohit Więcej 50000 2020-02-08 1991
6 Bhavesh Jain 37000 2021-07-03 1998
5 Kryszna Sharma 48000 23.10.2010 1999

Wyniki uzyskane z powyższego zapytania pokazują, że rekordy są wyświetlane w kolejności rosnącej według roku urodzenia pracownika.

Przykład 4:

Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności malejącej według godziny urodzenia.

Zapytanie:

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

Ponieważ chcieliśmy posortować rekordy w kolejności malejącej według godziny urodzenia pracowników, zastosowaliśmy klauzulę ORDER BY ze słowem kluczowym DESC. Funkcja DATE_FORMAT () jest stosowana w kolumnie DOB z parametrem „%H”, aby wyodrębnić tylko godzinę urodzenia z kolumny „DOB”.

Otrzymasz następujące dane wyjściowe:

ID Nazwa Wynagrodzenie Data przyłączenia Godzina_Urodzenia
2 Kunala Mohite’a 34000 2021-01-01 19
1 Rohit Więcej 50000 2020-02-08 18
4 Anant Desai 59000 27.08.2018 piętnaście
6 Bhavesh Jain 37000 2021-07-03 13
3 Saurabh Jha 61000 2015-05-01 12
5 Kryszna Sharma 48000 23.10.2010 02

Wyniki uzyskane z powyższego zapytania pokazują, że rekordy wyświetlane są w kolejności malejącej według godziny urodzenia pracownika.

Przykład 5:

Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według roku dołączenia.

Zapytanie:

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

Ponieważ chcieliśmy posortować rekordy rosnąco według roku przyłączenia pracowników, zastosowaliśmy klauzulę ORDER BY. Funkcja DATE_FORMAT () jest stosowana w kolumnie Joining_Date z parametrem „%Y”, aby wyodrębnić tylko rok z „Joining_Date”.

Otrzymasz następujące dane wyjściowe:

mapy Javy
ID Nazwa Wynagrodzenie Year_Of_Dołączenie DOB
5 Kryszna Sharma 48000 2010 21.03.1999 02:14:56
3 Saurabh Jha 61000 2015 20.02.1983 12:18:45
4 Anant Desai 59000 2018 29.06.1978 15:45:13
1 Rohit Więcej 50000 2020 28.01.1991 18:06:08
2 Kunala Mohita 34000 2021 15.05.1990 19:10:00
6 Bhavesh Jain 37000 2021 1998-08-02 13:00:01

Wyniki uzyskane z powyższego zapytania pokazują, że rekordy są wyświetlane w kolejności rosnącej według roku dołączenia pracowników.

Przykład 6:

Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności malejącej według dnia dołączenia pracowników.

Zapytanie:

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

Ponieważ chcieliśmy posortować rekordy w kolejności malejącej według dnia dołączenia pracowników, zastosowaliśmy klauzulę ORDER BY ze słowem kluczowym DESC. Funkcja DAY () jest stosowana w kolumnie „Joining_Date”, aby wyodrębnić tylko dzień przyłączenia z Joining_Date.

Otrzymasz następujące dane wyjściowe:

ID Nazwa Wynagrodzenie Day_Of_Dołączenie DOB
4 Anant Desai 59000 27 29.06.1978 15:45:13
5 Kryszna Sharma 48000 23 21.03.1999 02:14:56
1 Rohit Więcej 50000 8 28.01.1991 18:06:08
6 Bhavesh Jain 37000 3 1998-08-02 13:00:01
2 Kunala Mohita 34000 1 15.05.1990 19:10:00
3 Saurabh Jha 61000 1 20.02.1983 12:18:45

Wyniki uzyskane z powyższego zapytania pokazują, że rekordy wyświetlane są w kolejności malejącej według dnia dołączenia pracowników.

Przykład 7:

Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według daty urodzenia pracownika.

Zapytanie:

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

Ponieważ chcieliśmy posortować rekordy rosnąco według daty urodzenia pracownika, zastosowaliśmy klauzulę ORDER BY. Funkcja DZIEŃ () jest stosowana w kolumnie „DOB”, aby wyodrębnić z daty urodzenia tylko dzień urodzenia.

Otrzymasz następujące dane wyjściowe:

ID Nazwa Wynagrodzenie Year_Of_Dołączenie Dzień narodzin
6 Bhavesh Jain 37000 2021-07-03 2
2 Kunala Mohita 34000 2021-01-01 piętnaście
3 Saurabh Jha 61000 2015-05-01 20
5 Kryszna Sharma 48000 23.10.2010 dwadzieścia jeden
1 Rohit Więcej 50000 2020-02-08 28
4 Anant Desai 59000 27.08.2018 29

Wyniki uzyskane z powyższego zapytania pokazują, że rekordy wyświetlane są w kolejności rosnącej według daty urodzenia pracownika.

Przykład 8:

Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według miesiąca urodzenia pracownika.

Zapytanie:

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

ID Nazwa Wynagrodzenie Data przyłączenia DOB
1 Rohit Więcej 50000 2020-02-08 28.01.1991 18:06:08
3 Saurabh Jha 61000 2015-05-01 20.02.1983 12:18:45
5 Kryszna Sharma 48000 23.10.2010 21.03.1999 02:14:56
2 Kunala Mohita 34000 2021-01-01 15.05.1990 19:10:00
4 Anant Desai 59000 27.08.2018 29.06.1978 15:45:13
6 Bhavesh Jain 37000 2021-07-03 1998-08-02 13:00:01

Wyniki uzyskane z powyższego zapytania pokazują, że rekordy wyświetlane są w kolejności rosnącej według miesiąca urodzenia pracownika.

Przykład 9:

Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według miesiąca dołączenia pracownika.

Zapytanie:

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

Ponieważ chcieliśmy posortować rekordy rosnąco według miesiąca przyłączenia pracowników, zastosowaliśmy klauzulę ORDER BY. W kolumnie „Joining_Date” zastosowano funkcję MIESIĄC (), aby wyodrębnić tylko miesiąc przyłączenia z Joining_Date.

Otrzymasz następujące dane wyjściowe:

ID Nazwa Wynagrodzenie Data przyłączenia DOB
2 Kunala Mohita 34000 2021-01-01 15.05.1990 19:10:00
1 Rohit Więcej 50000 2020-02-08 28.01.1991 18:06:08
3 Saurabh Jha 61000 2015-05-01 20.02.1983 12:18:45
6 Bhavesh Jain 37000 2021-07-03 1998-08-02 13:00:01
4 Anant Desai 59000 27.08.2018 29.06.1978 15:45:13
5 Kryszna Sharma 48000 23.10.2010 21.03.1999 02:14:56

Wyniki uzyskane z powyższego zapytania pokazują, że rekordy wyświetlane są w kolejności rosnącej miesiąca dołączenia pracownika.