當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


MySQL WEEK()用法及代碼示例


MySQL中的WEEK()函數用於查找給定日期的星期數。如果日期為NULL,則WEEK()函數將返回NULL。否則,它返回week的值,範圍在0到53之間。

用法:

WEEK(date, mode)

參數:此方法接受語法中上麵提到的two-parameters,如下所述-

  • date -
    我們要從中提取周的日期或日期時間。
  • mode -
    它指定一周中的哪一天開始。下表描述了mode參數的工作方式。

返回值:它返回星期數的值。

MODE 一周的第一天 RANGE 第一周是第一周……
0 Sunday 0-53 今年的一個星期天
1 Monday 0-53 今年有四天或以上
2 Sunday 1-53 今年的一個星期天
3 Monday 1-53 今年有四天或以上
4 Sunday 0-53 今年有四天或以上
5 Monday 0-53 在今年的一個星期一
6 Sunday 1-53 今年有四天或以上
7 Monday 1-53 在今年的一個星期一

示例1:
在15/10/2020使用WEEK()函數查找當前星期數。

SELECT WEEK(NOW()) AS Current_Week;

輸出:

Current_Week
41

因此,當前星期數是41。

示例2:
使用WEEK()函數從給定的日期時間查找星期。

SELECT WEEK('2010-05-20 08:09:22') AS Week;

輸出:

20

因此,在此示例中,周數為20。



示例3:
當日期為NULL時,使用WEEK()函數從給定的日期時間查找星期。

SELECT WEEK(NULL) AS Week;

輸出:

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-1-26'),
('CS101', 161029, 'Arun Kumar', '2019-5-30'),
('CS101', 161031, 'Sanya Jain', '2019-6-08'),
('CS101', 161058, 'Riya Shah', '2019-10-15'),
('CS101', 162051, 'Amit Sharma', '2019-10-18'),
('CS101', 161951, 'Sayan Singh', '2019-10-30'),
('CS101', 167051, 'Rishi Jana', '2019-11-02'),
('CS101', 168001, 'Aniket Dravid', '2019-11-10'),
('CS101', 168051, 'Rita Singh', '2019-11-13'),
('CS101', 166051, 'Kalyan Ghandi', '2019-12-26');

表-課程

COURSE_NAME STUDENT_ID STUDENT_NAME ENROLL_DATE
CS101 161011 阿米特·辛格 2019-1-26
CS101 161029 阿倫·庫瑪(Arun Kumar) 2019-5-30
CS101 161031 三亞Ja那教 2019-6-08
CS101 161058 裏亞沙(Riya Shah) 2019-10-15
CS101 162051 阿米特·沙瑪(Amit Sharma) 2019-10-18
CS101 161951 薩揚·辛格(Sayan Singh) 2019-10-30
CS101 167051 Rishi Jana 2019-11-02
CS101 168001 阿妮克特·德拉維德(Aniket Dravid) 2019-11-10
CS101 168051 麗塔·辛格(Rita Singh) 2019-11-13
CS101 166051 卡利安·甘地(Kalyan Ghandi) 2019-12-26

現在,我們將查找每周參加該課程的學生人數。

SELECT WEEK(Enroll_Date) WeekNumber,  
COUNT(Student_id) Student_Enrolled
FROM Course
GROUP BY WEEK(Enroll_Date)
ORDER BY WEEK(Enroll_Date);

輸出:

WEEKNUMBER STUDENT_ENROLLED
3 1
21 1
22 1
41 2
43 2
45 2
51 1

相關用法


注:本文由純淨天空篩選整理自jana_sayantan大神的英文原創作品 WEEK() Function in MySQL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。