logo

SQL 日付順

  • ORDER BY は、テーブルからレコードを昇順または降順でフェッチするために SELECT クエリで使用される SQL の句です。
  • テーブルの列に格納されている整数と文字列値を並べ替えるのと同じように、SQL テーブルの列に格納されている日付を並べ替えることができます。
  • デフォルトでは、すべてのレコードが昇順に並べ替えられます。レコードを降順に並べ替えるには、DESC キーワードを使用します。

この概念をより明確に理解するために、いくつかの実際的な例を見てみましょう。すべてのクエリの作成には MySQL データベースを使用します。

次のデータを含む MySQL データベースにemployeesという名前のテーブルを作成したとします。

ID 名前 給料 入社日 生年月日
1 ロヒット・モア 50000 2020-02-08 1991-01-28 18:06:08
2 クナル・モヒット 34000 2021-01-01 1990-05-15 19:10:00
3 サウラブ・ジャ 61000 2015-05-01 1983-02-20 12:18:45
4 アナント・デサイ 59000 2018-08-27 1978-06-29 15:45:13
5 クリシュナ・シャルマ 48000 2010-10-23 1999-03-21 02:14:56
6 バベシュ・ジャイナ教 37000 2021-07-03 1998-08-02 13:00:01

例 1:

従業員のすべての詳細を生年月日の昇順に並べて表示するクエリを作成します。

クエリ:

 mysql> SELECT *FROM employees ORDER BY DOB; 

レコードを従業員の生年月日の昇順に並べ替えたいため、列「DOB」に ORDER BY 句を適用しました。

次の出力が得られます。

ID 名前 給料 入社日 生年月日
4 アナント・デサイ 59000 2018-08-27 1978-06-29 15:45:13
3 サウラブ・ジャ 61000 2015-05-01 1983-02-20 12:18:45
2 クナル・モヒット 34000 2021-01-01 1990-05-15 19:10:00
1 ロヒット・モア 50000 2020-02-08 1991-01-28 18:06:08
6 バベシュ・ジャイナ教 37000 2021-07-03 1998-08-02 13:00:01
5 クリシュナ・シャルマ 48000 2010-10-23 1999-03-21 02:14:56

上記のクエリから得られた結果は、レコードが DOB の昇順に従って表示されていることを示しています。

例 2:

従業員のすべての詳細を入社日の降順に表示するクエリを作成します。

クエリ:

フォントギンプ
 mysql> SELECT *FROM employees ORDER BY Joining_Date DESC; 

従業員の入社日の降順でレコードを並べ替えたいため、「Joining_Date」列に DESC キーワードを指定した ORDER BY 句を適用しました。

次の出力が得られます。

ID 名前 給料 入社日 生年月日
6 バベシュ・ジャイナ教 37000 2021-07-03 1998-08-02 13:00:01
2 クナル・モヒット 34000 2021-01-01 1990-05-15 19:10:00
1 ロヒット・モア 50000 2020-02-08 1991-01-28 18:06:08
4 アナント・デサイ 59000 2018-08-27 1978-06-29 15:45:13
3 サウラブ・ジャ 61000 2015-05-01 1983-02-20 12:18:45
5 クリシュナ・シャルマ 48000 2010-10-23 1999-03-21 02:14:56

上記のクエリから得られた結果は、レコードが結合日の降順に従って表示されていることを示しています。

例 3:

従業員のすべての詳細を誕生年の昇順に並べて表示するクエリを作成します。

クエリ:

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

従業員の誕生年の昇順にレコードを並べ替えたいため、ORDER BY 句を適用しました。 DATE_FORMAT () 関数は、パラメーター '%Y' を使用して DOB 列に適用され、'DOB' から年のみを抽出します。

次の出力が得られます。

ID 名前 給料 入社日 生年
4 アナント・デサイ 59000 2018-08-27 1978年
3 サウラブ・ジャ 61000 2015-05-01 1983年
2 クナル・モヒット 34000 2021-01-01 1990年
1 ロヒット・モア 50000 2020-02-08 1991年
6 バベシュ・ジャイナ教 37000 2021-07-03 1998年
5 クリシュナ・シャルマ 48000 2010-10-23 1999年

上記のクエリから得られた結果は、レコードが従業員の生年月日の昇順に従って表示されていることを示しています。

例 4:

Javaをアップグレードする方法

従業員のすべての詳細を出生時間の降順に表示するクエリを作成します。

クエリ:

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

レコードを従業員の出生時間の降順に並べ替えたいため、DESC キーワードを使用して ORDER BY 句を適用しました。 DATE_FORMAT () 関数は、パラメーター '%H' を使用して DOB 列に適用され、列 'DOB' から出生時間のみを抽出します。

次の出力が得られます。

ID 名前 給料 入社日 誕生時間
2 クナル・モヒット 34000 2021-01-01 19
1 ロヒット・モア 50000 2020-02-08 18
4 アナント・デサイ 59000 2018-08-27 15
6 バベシュ・ジャイナ教 37000 2021-07-03 13
3 サウラブ・ジャ 61000 2015-05-01 12
5 クリシュナ・シャルマ 48000 2010-10-23 02

上記のクエリから得られた結果は、レコードが従業員の出生時間の降順に従って表示されていることを示しています。

例 5:

従業員のすべての詳細を入社年の昇順に並べて表示するクエリを作成します。

クエリ:

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

社員の入社年の昇順に並べ替えたいので、ORDER BY句を適用しました。 DATE_FORMAT () 関数は、パラメーター '%Y' を使用して列 Joining_Date に適用され、'Joining_Date' から年のみを抽出します。

次の出力が得られます。

ID 名前 給料 入社年 生年月日
5 クリシュナ・シャルマ 48000 2010年 1999-03-21 02:14:56
3 サウラブ・ジャ 61000 2015年 1983-02-20 12:18:45
4 アナント・デサイ 59000 2018年 1978-06-29 15:45:13
1 ロヒット・モア 50000 2020年 1991-01-28 18:06:08
2 クナル・モヒット 34000 2021年 1990-05-15 19:10:00
6 バベシュ・ジャイナ教 37000 2021年 1998-08-02 13:00:01

上記のクエリで得られた結果は、社員の入社年の昇順でレコードが表示されていることがわかります。

例6:

従業員の入社日の降順に並べて従業員のすべての詳細を表示するクエリを作成します。

クエリ:

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

従業員の入社日の降順にレコードを並べ替えたいため、DESC キーワードを使用して ORDER BY 句を適用しました。 「Joining_Date」列にDAY()関数を適用し、Joining_Dateから参加日のみを抽出します。

次の出力が得られます。

ID 名前 給料 参加日 生年月日
4 アナント・デサイ 59000 27 1978-06-29 15:45:13
5 クリシュナ・シャルマ 48000 23 1999-03-21 02:14:56
1 ロヒット・モア 50000 8 1991-01-28 18:06:08
6 バベシュ・ジャイナ教 37000 3 1998-08-02 13:00:01
2 クナル・モヒット 34000 1 1990-05-15 19:10:00
3 サウラブ・ジャ 61000 1 1983-02-20 12:18:45

上記クエリの結果は、社員の入社日の降順にレコードが表示されていることがわかります。

例 7:

従業員の誕生日の昇順に並べて従業員のすべての詳細を表示するクエリを作成します。

クエリ:

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

従業員の生年月日の昇順に並べ替えたいため、ORDER BY 句を適用しました。 DAY()関数を「生年月日」列に適用し、生年月日から生年月日のみを抽出します。

次の出力が得られます。

ID 名前 給料 入社年 生まれた日
6 バベシュ・ジャイナ教 37000 2021-07-03 2
2 クナル・モヒット 34000 2021-01-01 15
3 サウラブ・ジャ 61000 2015-05-01 二十
5 クリシュナ・シャルマ 48000 2010-10-23 21
1 ロヒット・モア 50000 2020-02-08 28
4 アナント・デサイ 59000 2018-08-27 29

上記のクエリから得られた結果は、レコードが従業員の生年月日の昇順に従って表示されていることを示しています。

例 8:

従業員の誕生月の昇順に並べて従業員のすべての詳細を表示するクエリを作成します。

クエリ:

Javaでcatchブロックを試してください
 mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB); 

ID 名前 給料 入社日 生年月日
1 ロヒット・モア 50000 2020-02-08 1991-01-28 18:06:08
3 サウラブ・ジャ 61000 2015-05-01 1983-02-20 12:18:45
5 クリシュナ・シャルマ 48000 2010-10-23 1999-03-21 02:14:56
2 クナル・モヒット 34000 2021-01-01 1990-05-15 19:10:00
4 アナント・デサイ 59000 2018-08-27 1978-06-29 15:45:13
6 バベシュ・ジャイナ教 37000 2021-07-03 1998-08-02 13:00:01

上記のクエリから得られた結果は、レコードが従業員の誕生月の昇順に従って表示されていることを示しています。

例9:

従業員のすべての詳細を入社月の昇順に並べて表示するクエリを作成します。

クエリ:

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

社員の入社月の昇順に並べ替えたいので、ORDER BY句を適用しました。 MONTH()関数を「Joining_Date」列に適用し、Joining_Dateから入社月のみを抽出します。

次の出力が得られます。

ID 名前 給料 入社日 生年月日
2 クナル・モヒット 34000 2021-01-01 1990-05-15 19:10:00
1 ロヒット・モア 50000 2020-02-08 1991-01-28 18:06:08
3 サウラブ・ジャ 61000 2015-05-01 1983-02-20 12:18:45
6 バベシュ・ジャイナ教 37000 2021-07-03 1998-08-02 13:00:01
4 アナント・デサイ 59000 2018-08-27 1978-06-29 15:45:13
5 クリシュナ・シャルマ 48000 2010-10-23 1999-03-21 02:14:56

上記のクエリで得られた結果は、入社月の昇順でレコードが表示されていることがわかります。