logo

MySQL の YEARWEEK() 関数

年間 MySQL の () 関数は、指定された日付の年と週を検索するために使用されます。日付が NULL の場合、YEARWEEK() 関数は NULL を返します。それ以外の場合は、1000 ~ 9999 の範囲の年の値と 0 ~ 53 の範囲の週の値を返します。

構文:

Javaのコレクション
 YEARWEEK(date, mode)>

パラメータ: このメソッドは、上で説明し、以下で説明するように 2 つのパラメータを受け入れます。



    date : 年と週を抽出する日付または日時。 mode : 週の開始日を指定します。次の表では、mode 引数がどのように機能するかを説明します。
モード 週の最初の日 範囲 Week 1 は最初の週です…
0 日曜日 0-53 今年の日曜日は
1 月曜日 0-53 今年は4日以上ある
2 日曜日 1-53 今年の日曜日は
3 月曜日 1-53 今年は4日以上ある
4 日曜日 0-53 今年は4日以上ある
5 月曜日 0-53 今年の月曜日は
6 日曜日 1-53 今年は4日以上ある
7 月曜日 1-53 今年の月曜日は

戻り値 : 年と週の値を一緒に返します。

例-1: 2020/09/28 に Year() 関数を使用して現在の年と週を検索します。

 SELECT YEARWEEK(NOW()) AS Current_YearWeek;>

出力:

 +------------------+ | Current_YearWeek | +------------------+ | 202039 | +------------------+ 1 row in set (0.00 sec)>

したがって、現在の年は 2020 年で、週番号は 39 です。

例-2: YEARWEEK() 関数を使用して、指定された日時から年と週を検索します。

の名前
 SELECT YEARWEEK('2018-04-22 08:09:22') AS Year_Week ;>

出力:

 +-----------+ | Year_Week | +-----------+ | 201816 | +-----------+>

したがって、この例では年は 2018 で、週番号は 16 です。

例-3 : 日付が NULL の場合に YEARWEEK() 関数を使用して、指定された日時から年と週を検索します。

 SELECT YEARWEEK(NULL) AS Year_Week ;>

出力:

JavaScript
 +-----------+ | Year_Week | +-----------+ | NULL | +-----------+>

例-4 : この例では、1 年間の毎週のコースに登録している学生の数を調べます。デモのために、という名前のテーブルを作成します。

コース :

私のライブクリケット。
 CREATE TABLE Course( Course_name VARCHAR(100) NOT NULL, Student_id INT NOT NULL, Student_name VARCHAR(100) NOT NULL, Enroll_Date Date NOT NULL, PRIMARY KEY(Student_id) );>

次に、Product テーブルにデータを挿入します。

 INSERT INTO Course(Course_Name, Student_id, Student_name, Enroll_Date) VALUES ( 'CS101', 161011, 'Amit Singh', '2019-11-26' ), ( 'CS101', 161029, 'Arun Kumar', '2019-11-30' ), ( 'CS101', 161031, 'Sanya Jain', '2019-12-08' ), ( 'CS101', 161058, 'Riya Shah', '2019-12-15' ), ( 'CS101', 162051, 'Amit Sharma', '2019-12-18' ), ( 'CS101', 161951, 'Sayan Singh', '2019-12-26' ), ( 'CS101', 167051, 'Rishi Jana', '2020-01-02' ), ( 'CS101', 168001, 'Aniket Dravid', '2020-01-10' ), ( 'CS101', 168051, 'Rita Singh', '2020-01-13' ), ( 'CS101', 166051, 'Kalyan Ghandi', '2020-01-26' ) ;>

したがって、テーブルは次のようになります。

 mysql>コースから * を選択します。 +-------------+-----------+--------+------ -------+ |コース名 |学生ID |学生名 |登録日 | +---------------+-----------+---------------------+------ -------+ | CS101 | 161011 |アミット・シン | 2019-11-26 | | CS101 | 161029 |アルン・クマール | 2019-11-30 | | CS101 | 161031 |サンヤ・ジェイン | 2019-12-08 | | CS101 | 161058 |リヤ・シャー | 2019-12-15 | | CS101 | 161951 |サヤン・シン | 2019-12-26 | | CS101 | 162051 |アミット・シャルマ | 2019-12-18 | | CS101 | 166051 |カリヤン・ガンディ | 2020-01-26 | | CS101 | 167051 |リシ・ジャナ | 2020-01-02 | | CS101 | 168001 |アニケット・ドラヴィッド | 2020-01-10 | | CS101 | 168051 |リタ・シン | 2020-01-13 | +---------------+-----------+---------------------+------ -------+ 10 行セット (0.00 秒)>>

ここで、週および年ごとにコースに登録している学生の数を調べます。

 SELECT YEARWEEK(Enroll_Date) YearandWeek, COUNT(Student_id) Student_Enrolled FROM Course GROUP BY YEARWEEK(Enroll_Date) ORDER BY YEARWEEK(Enroll_Date);>

出力:

 +-------------+------------------+ | YearandWeek | Student_Enrolled | +-------------+------------------+ | 201947 | 2 | | 201949 | 1 | | 201950 | 2 | | 201951 | 1 | | 201952 | 1 | | 202001 | 1 | | 202002 | 1 | | 202004 | 1 | +-------------+------------------+ 8 rows in set (0.00 sec).>