logo

Funkcija YEARWEEK() v MySQL

YEARWEEK () funkcija v MySQL se uporablja za iskanje leta in tedna za določen datum. Če je datum NULL, bo funkcija YEARWEEK() vrnila NULL. V nasprotnem primeru vrne vrednost leta v razponu od 1000 do 9999 in vrednost tedna v razponu od 0 do 53.

Sintaksa:

 YEARWEEK(date, mode)>

Parameter: Ta metoda sprejme dva parametra, kot sta omenjena zgoraj in opisana spodaj:



    datum : datum ali datumura, iz katerega želimo izluščiti leto in teden. način : Določa, kateri dan se začne teden. Naslednja tabela opisuje, kako deluje argument načina.
Način Prvi dan v tednu Razpon 1. teden je prvi teden …
0 nedelja 0-53 z nedeljo v tem letu
1 ponedeljek 0-53 s 4 ali več dnevi letos
2 nedelja 1-53 z nedeljo v tem letu
3 ponedeljek 1-53 s 4 ali več dnevi letos
4 nedelja 0-53 s 4 ali več dnevi letos
5 ponedeljek 0-53 s ponedeljkom v tem letu
6 nedelja 1-53 s 4 ali več dnevi letos
7 ponedeljek 1-53 s ponedeljkom v tem letu

Vrnitve: Vrne vrednost leta in tedna skupaj.

Primer-1: Iskanje trenutnega leta in tedna s funkcijo Year() dne 28/09/2020.

 SELECT YEARWEEK(NOW()) AS Current_YearWeek;>

Izhod:

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

Torej, trenutno leto je 2020 in številka tedna je 39.

Primer-2: Iskanje leta in tedna glede na dani datum in uro z uporabo funkcije YEARWEEK().

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

Izhod:

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

Torej, leto je 2018 in številka tedna je 16 v tem primeru.

Primer-3: Iskanje leta in tedna iz podanega datuma in časa z uporabo funkcije YEARWEEK(), ko je datum NULL.

 SELECT YEARWEEK(NULL) AS Year_Week ;>

Izhod:

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

Primer-4: V tem primeru bomo našli število študentov, vpisanih v predmet za vsak teden v letu. Za prikaz ustvarite tabelo z imenom.

Tečaj:

 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) );>

Zdaj vstavljamo nekaj podatkov v tabelo izdelkov:

 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' ) ;>

Torej, naša tabela izgleda takole:

 mysql>izberite * iz tečaja; +-------------+------------+--------------+------ -------+ | Ime_tečaja | Študent_id | Ime študenta | Datum_vpisa | +-------------+------------+--------------+------ -------+ | 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 | 161951 | Sayan Singh | 2019-12-26 | | CS101 | 162051 | Amit Sharma | 2019-12-18 | | CS101 | 166051 | Kalyan Ghandi | 2020-01-26 | | CS101 | 167051 | Rishi Jana | 2020-01-02 | | CS101 | 168001 | Aniket Dravid | 2020-01-10 | | CS101 | 168051 | Rita Singh | 2020-01-13 | +-------------+------------+--------------+------ -------+ 10 vrstic v nizu (0,00 s)>

Zdaj bomo našli število študentov, vpisanih v tečaj za vsak teden in leto.

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

Izhod:

 +-------------+------------------+ | 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).>