JAHRESWOCHE ()-Funktion in MySQL wird verwendet, um Jahr und Woche für ein bestimmtes Datum zu finden. Wenn das Datum NULL ist, gibt die Funktion YEARWEEK() NULL zurück. Andernfalls wird ein Wert für das Jahr zurückgegeben, der zwischen 1000 und 9999 liegt, und ein Wert für eine Woche, der zwischen 0 und 53 liegt.
Syntax :
YEARWEEK(date, mode)>
Parameter: Diese Methode akzeptiert zwei Parameter, wie oben erwähnt und unten beschrieben:
- Datum: Das Datum oder die Uhrzeit, aus der wir das Jahr und die Woche extrahieren möchten. Modus: Gibt an, an welchem Tag die Woche beginnt. In der folgenden Tabelle wird beschrieben, wie das Modusargument funktioniert.
| Modus | Erster Tag der Woche | Reichweite | Woche 1 ist die erste Woche … |
|---|---|---|---|
| 0 | Sonntag | 0-53 | mit einem Sonntag in diesem Jahr |
| 1 | Montag | 0-53 | mit 4 oder mehr Tagen in diesem Jahr |
| 2 | Sonntag | 1-53 | mit einem Sonntag in diesem Jahr |
| 3 | Montag | 1-53 | mit 4 oder mehr Tagen in diesem Jahr |
| 4 | Sonntag | 0-53 | mit 4 oder mehr Tagen in diesem Jahr |
| 5 | Montag | 0-53 | mit einem Montag in diesem Jahr |
| 6 | Sonntag | 1-53 | mit 4 oder mehr Tagen in diesem Jahr |
| 7 | Montag | 1-53 | mit einem Montag in diesem Jahr |
Kehrt zurück : Es gibt den Wert von Jahr und Woche zusammen zurück.
Beispiel 1 : Ermitteln des aktuellen Jahres und der aktuellen Woche mithilfe der Funktion Year() am 28.09.2020.
SELECT YEARWEEK(NOW()) AS Current_YearWeek;>
Ausgabe :
+------------------+ | Current_YearWeek | +------------------+ | 202039 | +------------------+ 1 row in set (0.00 sec)>
Das aktuelle Jahr ist also 2020 und die Wochennummer ist 39.
Beispiel-2: Ermitteln des Jahres und der Woche anhand einer bestimmten Datums- und Uhrzeitangabe mithilfe der Funktion YEARWEEK().
SELECT YEARWEEK('2018-04-22 08:09:22') AS Year_Week ;> Ausgabe :
+-----------+ | Year_Week | +-----------+ | 201816 | +-----------+>
Das Jahr ist also 2018 und die Wochennummer ist in diesem Beispiel 16.
Beispiel-3: Ermitteln des Jahres und der Woche anhand einer bestimmten Datums-/Uhrzeit mithilfe der Funktion YEARWEEK(), wenn das Datum NULL ist.
SELECT YEARWEEK(NULL) AS Year_Week ;>
Ausgabe :
+-----------+ | Year_Week | +-----------+ | NULL | +-----------+>
Beispiel-4: In diesem Beispiel ermitteln wir die Anzahl der für einen Kurs eingeschriebenen Studenten für jede Woche eines Jahres. Erstellen Sie zur Demonstration eine Tabelle mit dem Namen.
Kurs :
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) );>
Fügen Sie nun einige Daten in die Produkttabelle ein:
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' ) ;>
Unsere Tabelle sieht also so aus:
mysql>Wählen Sie * aus Kurs; +-------------+------------+---------------+------ -------+ | Kursname | Studenten_id | Studentenname | Anmeldedatum | +-------------+------------+---------------+------ -------+ | CS101 | 161011 | Amit Singh | 26.11.2019 | | CS101 | 161029 | Arun Kumar | 30.11.2019 | | CS101 | 161031 | Sanya Jain | 08.12.2019 | | CS101 | 161058 | Riya Shah | 15.12.2019 | | CS101 | 161951 | Sayan Singh | 26.12.2019 | | CS101 | 162051 | Amit Sharma | 18.12.2019 | | CS101 | 166051 | Kalyan Ghandi | 26.01.2020 | | CS101 | 167051 | Rishi Jana | 02.01.2020 | | CS101 | 168001 | Aniket Dravid | 10.01.2020 | | CS101 | 168051 | Rita Singh | 13.01.2020 | +-------------+------------+---------------+------ -------+ 10 Zeilen im Satz (0,00 Sek.)>
Jetzt werden wir für jede Woche und jedes Jahr die Anzahl der für den Kurs eingeschriebenen Studenten ermitteln.
SELECT YEARWEEK(Enroll_Date) YearandWeek, COUNT(Student_id) Student_Enrolled FROM Course GROUP BY YEARWEEK(Enroll_Date) ORDER BY YEARWEEK(Enroll_Date);>
Ausgabe :
+-------------+------------------+ | 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).>