GADA NEDĒĻA () funkcija MySQL tiek izmantota, lai atrastu gadu un nedēļu noteiktā datumā. Ja datums ir NULL, funkcija YEARWEEK() atgriezīs NULL. Pretējā gadījumā tas atgriež gada vērtību diapazonā no 1000 līdz 9999 un nedēļas vērtību, kas svārstās no 0 līdz 53.
Sintakse :
YEARWEEK(date, mode)>
Parametrs: Šī metode pieņem divus parametrus, kā minēts iepriekš un aprakstīts tālāk:
- datums : datums vai datums un laiks, no kura mēs vēlamies iegūt gadu un nedēļu. režīms : norāda, kurā dienā sākas nedēļa. Nākamajā tabulā ir aprakstīts, kā darbojas režīma arguments.
| Režīms | Pirmā nedēļas diena | Diapazons | 1. nedēļa ir pirmā nedēļa… |
|---|---|---|---|
| 0 | svētdiena | 0-53 | ar svētdienu šogad |
| 1 | pirmdiena | 0-53 | ar 4 vai vairāk dienām šogad |
| 2 | svētdiena | 1-53 | ar svētdienu šajā gadā |
| 3 | pirmdiena | 1-53 | ar 4 vai vairāk dienām šogad |
| 4 | svētdiena | 0-53 | ar 4 vai vairāk dienām šogad |
| 5 | pirmdiena | 0-53 | ar pirmdienu šajā gadā |
| 6 | svētdiena | 1-53 | ar 4 vai vairāk dienām šogad |
| 7 | pirmdiena | 1-53 | ar pirmdienu šajā gadā |
Atgriešanās: Tas atgriež gada un nedēļas vērtību kopā.
1. piemērs: Pašreizējā gada un nedēļas atrašana, izmantojot funkciju Year() 28/09/2020.
SELECT YEARWEEK(NOW()) AS Current_YearWeek;>
Izvade:
+------------------+ | Current_YearWeek | +------------------+ | 202039 | +------------------+ 1 row in set (0.00 sec)>
Tātad kārtējais gads ir 2020. gads un nedēļas numurs ir 39.
2. piemērs: Gada un nedēļas atrašana no norādītā datuma un laika, izmantojot YEARWEEK() funkciju.
SELECT YEARWEEK('2018-04-22 08:09:22') AS Year_Week ;> Izvade:
+-----------+ | Year_Week | +-----------+ | 201816 | +-----------+>
Tātad šajā piemērā gads ir 2018, un nedēļas numurs ir 16.
3. piemērs: Gada un nedēļas atrašana no norādītā datuma un laika, izmantojot YEARWEEK() funkciju, ja datums ir NULL.
SELECT YEARWEEK(NULL) AS Year_Week ;>
Izvade:
+-----------+ | Year_Week | +-----------+ | NULL | +-----------+>
4. piemērs: Šajā piemērā mēs atradīsim kursā uzņemto studentu skaitu par katru nedēļu gadā. Lai demonstrētu, izveidojiet tabulu ar nosaukumu.
Kurss:
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) );>
Tagad produktu tabulā ievietojot dažus datus:
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' ) ;>
Tātad, mūsu tabula izskatās šādi:
mysql>izvēlieties * no Kursa; +-------------+-------------+----------------+------- -------+ | Kursa_nosaukums | Studenta_id | Studenta_vārds | Reģistrācijas_datums | +-------------+-------------+----------------+------- -------+ | CS101 | 161011 | Amits Singhs | 2019-11-26 | | CS101 | 161029 | Aruns Kumars | 2019-11-30 | | CS101 | 161031 | Sanya Jain | 2019-12-08 | | CS101 | 161058 | Rija Šaha | 2019-12-15 | | CS101 | 161951 | Sayan Singh | 2019-12-26 | | CS101 | 162051 | Amits Šarma | 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 rindas komplektā (0,00 sek)>
Tagad mēs atradīsim kursā uzņemto studentu skaitu par katru nedēļu un gadu.
SELECT YEARWEEK(Enroll_Date) YearandWeek, COUNT(Student_id) Student_Enrolled FROM Course GROUP BY YEARWEEK(Enroll_Date) ORDER BY YEARWEEK(Enroll_Date);>
Izvade:
+-------------+------------------+ | 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).>