年間 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).>