logo

Функція YEARWEEK() у MySQL

ТИЖДЕНЬ РІКУ Функція () у MySQL використовується для пошуку року та тижня для певної дати. Якщо дата дорівнює NULL, функція YEARWEEK() поверне NULL. В іншому випадку він повертає значення року в діапазоні від 1000 до 9999 і значення тижня в діапазоні від 0 до 53.

рядок для int java

Синтаксис:



 YEARWEEK(date, mode)>

Параметр: Цей метод приймає два параметри, згадані вище та описані нижче:

    date : дата або дата-час, з яких ми хочемо отримати рік і тиждень. режим : визначає, з якого дня починається тиждень. У наведеній нижче таблиці описано, як працює аргумент режиму.
Режим Перший день тижня Діапазон Тиждень 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: Пошук поточного року та тижня за допомогою функції Year() 28/09/2020.



 SELECT YEARWEEK(NOW()) AS Current_YearWeek;>

Вихід:

міні панель інструментів excel
 +------------------+ | 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: Пошук року та тижня за вказаною датою та часом за допомогою функції YEARWEEK(), коли дата має значення NULL.

 SELECT YEARWEEK(NULL) AS Year_Week ;>

Вихід:

java, якщо інше
 +-----------+ | Year_Week | +-----------+ | NULL | +-----------+>

Приклад-4: У цьому прикладі ми збираємося знайти кількість студентів, зарахованих на курс за кожен тиждень у році. Для демонстрації створіть таблицю з іменем.

курс:

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

Отже, наша таблиця виглядає так:

цикл for в java
 mysql>вибрати * з курсу; +-------------+------------+--------------+------ -------+ | Назва_курсу | Student_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).>