MySQL中的WEEKOFYEAR()函数用于查找给定日期的星期数。如果日期为NULL,则WEEKOFYEAR函数将返回NULL。否则,它将返回Week的值,范围在1到53之间。
用法:
WEEKOFYEAR( date)
参数:
此方法仅接受一个参数。
date -我们要从中提取周数的日期或日期时间。
返回值:
它返回星期数。
示例1:
在29/09/2020使用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:
在此示例中,我们将查找一年中每周上一门课程的学生人数。为了演示,创建一个名为.Course的表。
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_Name
学生卡
Student_name
Enroll_Date
CS101
161011
阿米特·辛格
2019-10-06
CS101
161029
阿伦·库玛(Arun Kumar)
2019-10-23
CS101
161031
三亚Ja那教
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-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_Number
Student_Enrolled
40
1
43
1
45
1
47
1
48
1
49
1
50
1
52
3