JAARWEEK () functie in MySQL wordt gebruikt om jaar en week voor een bepaalde datum te vinden. Als de datum NULL is, retourneert de functie YEARWEEK() NULL. Anders retourneert het de waarde van het jaar die varieert van 1000 tot 9999 en de waarde van de week die varieert van 0 tot 53.
Syntaxis:
YEARWEEK(date, mode)>
Parameter : Deze methode accepteert twee parameters zoals hierboven vermeld en hieronder beschreven:
- date : De datum of datetime waaruit we het jaar en de week willen extraheren. modus: specificeert op welke dag de week begint. In de volgende tabel wordt beschreven hoe het modusargument werkt.
| Modus | Eerste dag van de week | Bereik | Week 1 is de eerste week… |
|---|---|---|---|
| 0 | Zondag | 0-53 | met een zondag in dit jaar |
| 1 | Maandag | 0-53 | met 4 of meer dagen dit jaar |
| 2 | Zondag | 1-53 | met een zondag in dit jaar |
| 3 | Maandag | 1-53 | met 4 of meer dagen dit jaar |
| 4 | Zondag | 0-53 | met 4 of meer dagen dit jaar |
| 5 | Maandag | 0-53 | met een maandag in dit jaar |
| 6 | Zondag | 1-53 | met 4 of meer dagen dit jaar |
| 7 | Maandag | 1-53 | met een maandag in dit jaar |
Geeft terug : Het retourneert de waarde van jaar en week samen.
Voorbeeld 1 : Het huidige jaar en de huidige week vinden met de functie Year() op 28/09/2020.
SELECT YEARWEEK(NOW()) AS Current_YearWeek;>
Uitgang:
+------------------+ | Current_YearWeek | +------------------+ | 202039 | +------------------+ 1 row in set (0.00 sec)>
Het huidige jaar is dus 2020 en weeknummer is 39.
Voorbeeld-2: Het jaar en de week vinden vanaf een bepaalde datum/tijd met behulp van de functie YEARWEEK().
SELECT YEARWEEK('2018-04-22 08:09:22') AS Year_Week ;> Uitgang:
+-----------+ | Year_Week | +-----------+ | 201816 | +-----------+>
Het jaartal is dus 2018 en het weeknummer is in dit voorbeeld 16.
Voorbeeld-3: Het jaar en de week zoeken vanaf een bepaalde datum/tijd Gebruik de functie YEARWEEK() als de datum NULL is.
SELECT YEARWEEK(NULL) AS Year_Week ;>
Uitgang:
+-----------+ | Year_Week | +-----------+ | NULL | +-----------+>
Voorbeeld-4: In dit voorbeeld gaan we voor elke week van het jaar op zoek naar het aantal studenten dat voor een cursus is ingeschreven. Om dit te demonstreren, maakt u een tabel met de naam.
Cursus :
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) );>
Nu worden enkele gegevens in de producttabel ingevoegd:
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' ) ;>
Onze tabel ziet er dus als volgt uit:
mysql>selecteer * uit Cursus; +------------+------------+--------------+------ -------+ | Cursusnaam | Student_id | Studentnaam | Inschrijvingsdatum | +------------+------------+--------------+------ -------+ | CS101 | 161011 | Amit Singh | 26-11-2019 | | CS101 | 161029 | Arun Kumar | 30-11-2019 | | CS101 | 161031 | Sanya Jain | 08-12-2019 | | CS101 | 161058 | Riya Sjah | 15-12-2019 | | CS101 | 161951 | Sayan Singh | 26-12-2019 | | CS101 | 162051 | Amit Sharma | 2019-12-18 | | CS101 | 166051 | Kalyan Gandhi | 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 rijen in set (0,00 sec)>
Nu gaan we voor elke week en elk jaar het aantal studenten vinden dat voor de cursus is ingeschreven.
SELECT YEARWEEK(Enroll_Date) YearandWeek, COUNT(Student_id) Student_Enrolled FROM Course GROUP BY YEARWEEK(Enroll_Date) ORDER BY YEARWEEK(Enroll_Date);>
Uitgang:
+-------------+------------------+ | 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).>