logo

Funkcja YEARWEEK() w MySQL

TYDZIEŃ () w MySQL służy do znalezienia roku i tygodnia dla danej daty. Jeśli data ma wartość NULL, funkcja YEARWEEK() zwróci wartość NULL. W przeciwnym razie zwraca wartość roku z zakresu od 1000 do 9999 i wartość tygodnia z zakresu od 0 do 53.

Składnia:

 YEARWEEK(date, mode)>

Parametr: Ta metoda akceptuje dwa parametry, jak wspomniano powyżej i opisano poniżej:



myflixer
    date : Data lub godzina, z której chcemy wyodrębnić rok i tydzień. mode : Określa dzień, w którym zaczyna się tydzień. W poniższej tabeli opisano działanie argumentu mode.
Tryb Pierwszy dzień tygodnia Zakres Tydzień 1 to pierwszy tydzień…
0 Niedziela 0-53 z niedzielą w tym roku
1 Poniedziałek 0-53 z 4 lub więcej dniami w tym roku
2 Niedziela 1-53 z niedzielą w tym roku
3 Poniedziałek 1-53 z 4 lub więcej dniami w tym roku
4 Niedziela 0-53 z 4 lub więcej dniami w tym roku
5 Poniedziałek 0-53 z poniedziałkiem w tym roku
6 Niedziela 1-53 z 4 lub więcej dniami w tym roku
7 Poniedziałek 1-53 z poniedziałkiem w tym roku

Zwroty : Zwraca wartość roku i tygodnia razem.

Przykład 1 : Znajdowanie bieżącego roku i tygodnia za pomocą funkcji Year() z dnia 28.09.2020.

 SELECT YEARWEEK(NOW()) AS Current_YearWeek;>

Wyjście :

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

Zatem bieżący rok to 2020, a numer tygodnia to 39.

Przykład-2: Znajdowanie roku i tygodnia z podanej daty i godziny za pomocą funkcji YEARWEEK().

css wyrównywanie obrazów
 SELECT YEARWEEK('2018-04-22 08:09:22') AS Year_Week ;>

Wyjście :

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

Zatem w tym przykładzie jest rok 2018, a numer tygodnia to 16.

Przykład-3: Znajdowanie roku i tygodnia na podstawie podanej daty i godziny przy użyciu funkcji YEARWEEK(), gdy data ma wartość NULL.

 SELECT YEARWEEK(NULL) AS Year_Week ;>

Wyjście :

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

Przykład-4: W tym przykładzie znajdziemy liczbę studentów zapisanych na kurs w każdym tygodniu w roku. Aby zademonstrować, utwórz tabelę o nazwie.

Kurs :

sortowanie przez wstawianie Java
 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) );>

Teraz wstawiam trochę danych do tabeli Produkt:

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

Zatem nasza tabela wygląda następująco:

 mysql>wybierz * z kursu; +-------------+------------+--------------+------ --------+ | Nazwa_kursu | Identyfikator_ucznia | Imię_ucznia | Data_rejestracji | +-------------+------------+--------------+------ --+ | CS101 | 161011 | Amit Singh | 26.11.2019 | | 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 | 26.12.2019 | | 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 rzędów w zestawie (0,00 s)>

Teraz obliczymy liczbę studentów zapisanych na kurs w każdym tygodniu i roku.

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

Wyjście :

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