logo

SQL 日付関数

このチュートリアルでは、SQL に組み込まれている重要な日付関数のいくつかについて学びます。

SQL の日付関数:

  1. 今()
  2. CURDATE()
  3. 時間()
  4. 日付()
  5. 抽出する()
  6. DATE_ADD()
  7. DATE_SUB()
  8. DATEDIFF()
  9. DATE_FORMAT()

例を使用して、日付関数を 1 つずつ詳しく見てみましょう。クエリを作成する例では MySQL データベースを使用します。

次のデータを含む Student テーブルがあるとします。

ID 名前 日付時刻_誕生日
1 マンシ・シャー 2010-01-01 18:39:09 プネ
2 テジャル・ワーグ 2010-03-04 05:13:19 ナシク
3 セハル・クマリ 2010-05-01 10:31:07 ムンバイ
4 ソナル・ジェイン 2010-09-09 17:17:07 シムラー
5 スリリ・マヘシュワリ 2010-07-10 20:45:18 手紙

いくつかの例でこのテーブルを使用します。

1. 今():

SQL の NOW () 関数は、現在のシステムの日付と時刻を返します。

構文:

 SELECT NOW (); 

例:

現在のシステムの日付と時刻を表示するクエリを作成します。

クエリ:

 mysql> SELECT NOW () AS Current_Date_Time; 

ここでは、システムの現在の日付と時刻を取得するために、NOW () 関数を使用した SELECT クエリを作成しました。 Current_Date_Time は、日付と時刻を格納するためのエイリアスです。

上記のクエリを実行すると、次の出力が得られました。

現在の日付_時刻
2021-10-24 18:28:44

システムでクエリが実行された日時は 24 です。番目2021年10月と18時28分44秒。したがって、出力として表示されます。

2. CURDATE()

SQL の CURDATE () 関数は、現在のシステムの日付を返します。

Cプログラミングにおける文字列の配列

構文:

 SELECT CURDATE (); 

例:

現在のシステムの日付を表示するクエリを作成します。

クエリ:

 mysql> SELECT CURDATE () AS CurrentDate; 

ここでは、CURDATE () 関数を使用してシステムの現在の日付を取得する SELECT クエリを作成しました。 CurrentDate は日付を格納するためのエイリアスです。

上記のクエリを実行すると、次の出力が得られました。

現在の日付
2021-10-24

システムでクエリが実行された日付は 24 です番目2021 年 10 月。したがって、出力として表示されます。

3. カータイム()

SQL の CURTIME () 関数は、現在のシステム時刻を返します。

構文:

 SELECT CURTIME (); 

例:

現在のシステム時間を表示するクエリを作成します。

クエリ:

 mysql> SELECT CURTIME () AS CurrentTime; 

ここでは、システムの現在時刻を取得するために、CURTIME () 関数を使用した SELECT クエリを作成しました。 CurrentTime は時間を格納するためのエイリアスです。

上記のクエリを実行すると、次の出力が得られました。

現在の時刻
18:49:07

システムでクエリが実行された時刻は 18:49:07 です。したがって、出力として表示されます。

4. 日付()

SQL で DATE () 関数を使用すると、DATETIME データ型列から日付を具体的に抽出できます。

構文:

 SELECT DATE (DateTimeValue); 

例 1:

指定された日時 (2021-10-24 18:28:44) からの日付を表示するクエリを作成します。

クエリ:

組合対全組合
 mysql> SELECT DATE ('2021-10-24 18:28:44') AS SHOW_DATE; 

ここでは、DATE() 関数に渡された日付と時刻のパラメーターから日付のみを取得するために、DATE() 関数を使用した SELECT クエリを作成しました。 SHOW_DATE は日付を格納するためのエイリアスです。

上記のクエリを実行すると、次の出力が得られました。

SHOW_DATE
2021-10-24

日付と時刻のパラメーター、つまり「2021-10-24 18:28:44」から、日付値は 2021-10-24 になります。したがって、出力として表示されます。

例 2:

Student テーブルの DateTime_Birth 列の日付を使用して Student テーブルのすべての詳細を表示するクエリを作成します。

クエリ:

 mysql> SELECT ID, Name, DATE(DateTime_Birth) AS Date_of_Birth, City FROM student; 

ここでは、ID と名前を取得する SELECT クエリを作成しました。 Date_of_Birth は DateTime_Birth のエイリアスです。 Date_of_Birth を DATE () 関数とともに使用して、日付のみを取得しました。

上記のクエリを実行すると、次の出力が得られました。

ID 名前 生年月日
1 マンシ・シャー 2010-01-01 プネ
2 テジャル・ワーグ 2010-03-04 ナシク
3 セハル・クマリ 2010-05-01 ムンバイ
4 ソナル・ジェイン 2010-09-09 シムラー
5 スリリ・マヘシュワリ 2010-07-10 手紙

DateTime_Birth 列を除くすべてのレコードが Student テーブルからそのまま表示されます。要件に従って、Date_of_Birth 列には日付のみが表示されます。

5. 抽出()

SQL で EXTRACT() 関数を使用すると、要件に従って日付と時刻の特定の部分 (日、月、年、日、時、分など) を抽出できます。

構文:

 SELECT EXTRACT (PART FROM DATE / TIME); 

例 1:

指定された日付からの年、つまり 24 を表示するクエリを作成します。番目2021年10月。

クエリ:

 mysql> SELECT EXTRACT (YEAR FROM '2021-10-24') AS SHOW_YEAR; 

ここでは、EXTRACT () 関数を使用して、指定された日付から年を取得する SELECT クエリを作成しました。 SHOW_YEAR は、年を格納するためのエイリアスです。

上記のクエリを実行すると、次の出力が得られました。

SHOW_YEAR
2021年

「2021」は、指定された日付の年です。したがって、出力として表示されます。

例 2:

指定された日付、つまり 24 からの月を表示するクエリを作成します。番目2021年10月。

クエリ:

 mysql> SELECT EXTRACT (MONTH FROM '2021-10-24') AS SHOW_MONTH; 

ここでは、EXTRACT () 関数を使用して、指定された日付から月を取得する SELECT クエリを作成しました。 SHOW_MONTH は、月を格納するためのエイリアスです。

上記のクエリを実行すると、次の出力が得られました。

SHOW_MONTH
10

10番目指定された日付の月の値です。したがって、出力として表示されます。

例 3:

指定された日付、つまり 24 からの日を表示するクエリを作成します。番目2021年10月。

クエリ:

 mysql> SELECT EXTRACT (DAY FROM '2021-10-24') AS SHOW_DAY; 

ここでは、EXTRACT () 関数を使用して、指定された日付から日を取得する SELECT クエリを作成しました。 SHOW_DAY は、その日を保存するためのエイリアスです。

上記のクエリを実行すると、次の出力が得られました。

SHOW_DAY
24

24番目指定された日付の日の値です。したがって、出力として表示されます。

例 4:

指定された時刻、つまり 19:10:43 からの時間を表示するクエリを作成します。

クエリ:

 mysql> SELECT EXTRACT (HOUR FROM '19:10:43') AS SHOW_HOUR; 

ここでは、EXTRACT () 関数を使用して、指定された時刻から時間を取得する SELECT クエリを作成しました。 SHOW_HOUR は、時間の値を格納するためのエイリアスです。

上記のクエリを実行すると、次の出力が得られました。

SHOW_HOUR
19

「19」は、指定された時刻の時の値です。したがって、出力として表示されます。

例 5:

指定された時刻、つまり 19:10:43 からの分を表示するクエリを作成します。

クエリ:

 mysql> SELECT EXTRACT (MINUTE FROM '19:10:43') AS SHOW_MINUTE; 

ここでは、EXTRACT () 関数を使用して、指定された時刻から分の値を取得する SELECT クエリを作成しました。 SHOW_MINUTE は分を格納するためのエイリアスです。

上記のクエリを実行すると、次の出力が得られました。

Excelで在職期間を計算する
SHOW_MINUTE
10

「10」は、指定された時間の分の値です。したがって、出力として表示されます。

例 6:

指定された時刻 (19:10:43 など) からの秒数を表示するクエリを作成します。

クエリ:

 mysql> SELECT EXTRACT (SECOND FROM '19:10:43') AS SHOW_SECOND; 

ここでは、EXTRACT () 関数を使用して、指定された時刻から秒の値を取得する SELECT クエリを作成しました。 SHOW_SECOND は秒の値を格納するためのエイリアスです。

上記のクエリを実行すると、次の出力が得られました。

SHOW_SECOND
43

43 は、指定された時間内の 2 番目の値です。したがって、出力として表示されます。

6. DATE_ADD()

SQL で DATE_ADD () 関数を使用すると、指定された日付に特定の時間間隔を追加できます。

構文:

 SELECT DATE_ADD (DATE, INTERVAL VALUE Unit_to_be_added); 

例 1:

指定された日付に 15 日の間隔 (つまり 24) を追加するクエリを作成します。番目2021年10月。

クエリ:

 mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE; 

ここでは、指定された日付に 15 日の間隔を追加する DATE_ADD () 関数を使用した SELECT クエリを作成しました。 NEW_DATE は、新しい日付の値を格納するためのエイリアスです。

次の出力が得られます。

NEW_DATE
2021-11-08

2021-10-24 に 15 日の間隔を追加すると、新しい日付は 2021-11-08 になります。

例 2:

指定された日付 (つまり 24) に 5 か月の間隔を追加するクエリを作成します。番目2021年10月。

クエリ:

 mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE; 

ここでは、指定された日付に 5 か月の間隔を追加する DATE_ADD () 関数を使用した SELECT クエリを作成しました。 NEW_DATE は、新しい日付の値を格納するためのエイリアスです。

次の出力が得られます。

NEW_DATE
2022-03-24

2021-10-24 に 5 か月の間隔を追加すると、新しい日付は 2022-03-24 になります。

例 3:

指定された日付に 25 年の間隔 (つまり 24) を追加するクエリを作成します。番目2021年10月。

クエリ:

 mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE; 

ここでは、指定された日付に 25 年の間隔を追加する DATE_ADD () 関数を使用した SELECT クエリを作成しました。 NEW_DATE は、新しい日付の値を格納するためのエイリアスです。

次の出力が得られます。

NEW_DATE
2046-10-24

2021-10-24 に 25 年の間隔を追加すると、新しい日付は 2046-10-24 になります。

7. DATE_SUB()

SQL で DATE_SUB () 関数を使用すると、指定された日付から特定の時間間隔を削除できます。

構文:

 SELECT DATE_SUB (DATE, INTERVAL VALUE Unit_to_be_subtracted); 

例 1:

指定された日付から 25 年の間隔 (つまり 24) を削除するクエリを作成します。番目2021年10月。

クエリ:

 mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE; 

ここでは、指定された日付から 25 年の間隔を削除する DATE_SUB() 関数を使用した SELECT クエリを作成しました。 NEW_DATE は、新しい日付の値を格納するためのエイリアスです。

次の出力が得られます。

NEW_DATE
1996-10-24

2021-10-24 から 25 年間隔を削除した後の新しい日付は 1996-10-24 になります。

例 2:

指定された日付から 5 か月の間隔 (つまり 24) を削除するクエリを作成します。番目2021年10月。

クエリ:

 mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE; 

ここでは、指定された日付から 5 か月の間隔を削除する DATE_SUB() 関数を使用した SELECT クエリを作成しました。 NEW_DATE は、新しい日付の値を格納するためのエイリアスです。

次の出力が得られます。

NEW_DATE
2021-05-24

2021-10-24 から 5 か月の間隔を削除した後の新しい日付は 2021-05-24 になります。

例 3:

指定された日付から 15 日の間隔、つまり 24 日を削除するクエリを作成します。番目2021年10月。

クエリ:

 mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE; 

ここでは、指定された日付から 15 日の間隔を削除する DATE_SUB() 関数を使用した SELECT クエリを作成しました。 NEW_DATE は、新しい日付の値を格納するためのエイリアスです。

次の出力が得られます。

NEW_DATE
2021-10-09

2021-10-24 から 15 日間の間隔を削除した後の新しい日付は 2021-10-09 になります。

8.DATEDIFF()

SQL で DATEDIFF() 関数を使用すると、指定された 2 つの日付の間にある日数が得られます。

構文:

np.random.rand
 SELECT DATEDIFF(Date1, Date2); 

例 1:

指定された 2 つの日付の差、つまり 24 を計算するクエリを作成します。番目2021年10月、9日番目2021年10月。

クエリ:

 mysql> SELECT DATEDIFF('2021-10-24', '2021-10-09') AS NEW_DATE; 

ここでは、日付 2021-10-24 と 2021-10-09 の間の差異を取得するために、DATE_DIFF() 関数を使用した SELECT クエリを作成しました。 Number_of_Days は、差を日数で保存するためのエイリアスです。

次の出力が得られます。

日数
15

2021-10-24 と 2021-10-09 の日付の間には 15 日の違いがあります。

例 2:

指定された 2 つの日付の差、つまり 5 を計算するクエリを作成します。番目2018年5月、5日番目2008 年 5 月。

クエリ:

 mysql> SELECT DATEDIFF ('2018-05-05', '2008-05-05') AS NEW_DATE; 

ここでは、日付 2018-05-05 と 2008-05-05 の差を取得するために、DATE_DIFF () 関数を使用した SELECT クエリを作成しました。 Number_of_Days は、差を日数で保存するためのエイリアスです。

次の出力が得られます。

日数
3652

2018-05-05 と 2008-05-05 の日付の間には 3652 日の差があります。

9. DATE_FORMAT()

SQL で DATE_FORMAT () 関数を使用すると、日付または時刻関連の情報を適切な形式で表示できます。

テーブルの列で DATE_FORMAT 関数を使用する構文:

 SELECT DATE_FORMAT (ColumnName, Expression) FROM Table Name; 

または

特定の日付をフォーマットする構文:

 SELECT DATE_FORMAT (Date, Expression); 

例 1:

指定された日付を適切な形式で表示するクエリを作成します (例: 24)番目2021年10月。

クエリ:

 mysql> SELECT DATE_FORMAT ('2021-10-24', '%W %D %M %Y') AS Formatted_Date; 

ここでは、日付 2021-10-24 を書式設定された形式で取得するために、DATE_FORMAT () 関数を使用した SELECT クエリを作成しました。 Formatted_Date は、フォーマットされた日付を保存するためのエイリアスです。

in.next Java

次の出力が得られます。

フォーマットされた日付
2021年10月24日日曜日

2021 年 10 月 24 日の日曜日は、2021-10-24 の形式の日付です。

例 2:

指定された日付と時刻を適切な形式で表示するクエリを作成します (例: 24)番目2021年10月22時30分17秒。

クエリ:

 mysql> SELECT DATE_FORMAT ('2021-10-24 22:30:17', '%W %D %M %Y %r') AS Formatted_DateTime; 

ここでは、日付と時刻「2021-10-24 22:30:17」を書式設定された形式で取得するために、DATE_FORMAT () 関数を使用した SELECT クエリを作成しました。 Formatted_DateTime は、書式設定された日付と時刻を保存するためのエイリアスです。

次の出力が得られます。

Formatted_DateTime
2021年10月24日日曜日 午後10時30分17秒

2021 年 10 月 24 日日曜日 10:30:17 PM は、2021-10-24 22:30:17 の形式の日付と時刻です。

例 3:

DateTime_Birth 列を含む Student 列のすべての詳細を適切な形式で表示するクエリを作成します。

クエリ:

 mysql> SELECT ID, Name, DATE_FORMAT (DateTime_Birth, '%W %D %M %Y %r') AS Formatted_DateTime, City FROM student; 

ここでは、フォーマットされたフォーム内のすべてのレコードの日付と時刻を取得するために、DATE_FORMAT () 関数を使用した SELECT クエリを作成しました。 Formatted_DateTime は、書式設定された日付と時刻を保存するためのエイリアスです。

次の出力が得られます。

ID 名前 Formatted_DateTime
1 マンシ・シャー 2010 年 1 月 1 日金曜日 06:39:09 PM プネ
2 テジャル・ワーグ 2010 年 3 月 4 日木曜日 05:13:19 AM ナシク
3 セハル・クマリ 2010 年 5 月 1 日土曜日 10:31:07 午前 ムンバイ
4 ソナル・ジェイン 2010 年 9 月 9 日木曜日 05:17:07 PM シムラー
5 スリリ・マヘシュワリ 2010 年 7 月 10 日土曜日 08:45:18 PM 手紙

DateTime_Birth 列を除くすべてのレコードが Student テーブルからそのまま表示されます。必要に応じて、日付と時刻のみが Formatted_DateTime 列に表示されます。