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_Name | Student_id | Student_name | Enroll_Date |
---|---|---|---|
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-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 |