📜  MySQL 中的 WEEKOFYEAR()函数

📅  最后修改于: 2022-05-13 01:55:12.527000             🧑  作者: Mango

MySQL 中的 WEEKOFYEAR()函数

MySQL 中的 WEEKOFYEAR()函数用于查找给定日期的周数。如果日期为 NULL,WEEKOFYEAR函数将返回 NULL。否则,它返回范围在 1 到 53 之间的周值。

句法 :

WEEKOFYEAR( date)

范围 :
该方法只接受一个参数。

  • date –我们要从中提取周数的日期或日期时间。

回报:
它返回周数。

示例-1:
在 2020 年 9 月 29 日使用 WEEKOFYEAR()函数查找当前周数。

SELECT WEEKOFYEAR(NOW()) AS Current_Week;

输出 :

Current_Week
40

因此,当前周数是 40。

示例 2 :
使用 WEEKOFYEAR()函数从给定的 DateTime 中查找周。

SELECT WEEKOFYEAR('2018-04-22 08:09:22') 
AS Week_Number ;

输出 :

Week_Number
16

因此,在此示例中,周数为 16。

示例 3 :
使用 WEEKOFYEAR()函数从给定日期查找周。

SELECT WEEKOFYEAR('2019-07-25 ') 
AS Week_Number ;

输出 :

Week_Number 
30

示例 4:
当日期为 NULL 时,使用 WEEKOFYEAR()函数从给定的日期时间查找周数。

SELECT WEEKOFYEAR(NULL) 
AS Week_Number;

输出 :

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

现在向课程表中插入一些数据。

INSERT INTO
Course(Course_Name, Student_id, Student_name, Enroll_Date)
VALUES
    ( 'CS101', 161011, 'Amit Singh', '2019-10-06' ),
    ( 'CS101', 161029, 'Arun Kumar', '2019-10-23' ),
    ( 'CS101', 161031, 'Sanya Jain', '2019-11-08' ),
    ( 'CS101', 161058, 'Riya Shah', '2019-11-20' ),
    ( 'CS101', 162051, 'Amit Sharma', '2019-11-30' ),
    ( 'CS101', 161951, 'Sayan Singh', '2019-12-07' ),
    ( 'CS101', 167051, 'Rishi Jana', '2019-12-15' ),
    ( 'CS101', 168001, 'Aniket Dravid', '2019-12-25' ),
    ( 'CS101', 168051, 'Rita Singh', '2019-12-28' ),
    ( 'CS101', 166051, 'Kalyan Ghandi', '2019-12-29' ) ;

所以,我们的桌子看起来像。

Course_NameStudent_idStudent_nameEnroll_Date
CS101161011Amit Singh2019-10-06
CS101161029Arun Kumar2019-10-23
CS101161031Sanya Jain2019-11-08
CS101161058Riya Shah2019-11-20
CS101162051Amit Sharma2019-11-30
CS101161951Sayan Singh2019-12-07
CS101167051Rishi Jana2019-12-15
CS101168001Aniket Dravid2019-12-25
CS101168051Rita Singh2019-12-28
CS101166051Kalyan Ghandi2019-12-39

现在,我们将查找每周注册该课程的学生人数。

SELECT
WEEKOFYEAR(Enroll_Date) Week_Number,
COUNT(Student_id) Student_Enrolled
FROM
    Course
    GROUP BY WEEKOFYEAR(Enroll_Date)
    ORDER BY WEEKOFYEAR(Enroll_Date);

输出 :

 Week_NumberStudent_Enrolled
401
431
451
471
481
491
501
523