연도 () 함수는 MySQL의 특정 날짜에 대한 연도와 주를 찾는 데 사용됩니다. 날짜가 NULL이면 YEARWEEK() 함수는 NULL을 반환합니다. 그렇지 않으면 1000~9999 범위의 연도 값과 0~53 범위의 주 값을 반환합니다.
while 루프 자바를 수행
구문:
YEARWEEK(date, mode)>
매개변수: 이 메소드는 위에서 언급하고 아래에 설명된 두 개의 매개변수를 허용합니다.
- date : 연도와 주를 추출하려는 날짜 또는 날짜/시간입니다. mode : 한 주가 시작되는 요일을 지정합니다. 다음 표에서는 모드 인수가 작동하는 방식을 설명합니다.
| 방법 | 주의 첫날 | 범위 | 1주차는 첫 번째 주입니다. |
|---|---|---|---|
| 0 | 일요일 | 0-53 | 올해는 일요일이 있어서 |
| 1 | 월요일 | 0-53 | 올해는 4일 이상 |
| 2 | 일요일 | 1-53 | 올해는 일요일이 있어서 |
| 삼 | 월요일 | 1-53 | 올해는 4일 이상 |
| 4 | 일요일 | 0-53 | 올해는 4일 이상 |
| 5 | 월요일 | 0-53 | 올해는 월요일이네 |
| 6 | 일요일 | 1-53 | 올해는 4일 이상 |
| 7 | 월요일 | 1-53 | 올해는 월요일이네 |
반품 : 연도와 주 값을 함께 반환합니다.
예-1 : 2020년 9월 28일에 Year() 함수를 사용하여 현재 연도와 주 찾기.
SELECT YEARWEEK(NOW()) AS Current_YearWeek;>
출력 :
+------------------+ | Current_YearWeek | +------------------+ | 202039 | +------------------+ 1 row in set (0.00 sec)>
따라서 현재 연도는 2020이고 주 번호는 39입니다.
예-2 : YEARWEEK() 함수를 사용하여 주어진 날짜/시간에서 연도와 주를 찾습니다.
SELECT YEARWEEK('2018-04-22 08:09:22') AS Year_Week ;> 출력 :
+-----------+ | Year_Week | +-----------+ | 201816 | +-----------+>
따라서 이 예에서 연도는 2018이고 주 번호는 16입니다.
예-3 : 날짜가 NULL일 때 YEARWEEK() 함수를 사용하여 주어진 날짜/시간에서 연도와 주를 구합니다.
SELECT YEARWEEK(NULL) AS Year_Week ;>
출력 :
+-----------+ | Year_Week | +-----------+ | NULL | +-----------+>
예-4 : 이 예에서는 1년 동안 매주 강좌에 등록한 학생 수를 찾아보겠습니다. 시연하기 위해 이름이 지정된 테이블을 만듭니다.
강의 :
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) );>
이제 Product 테이블에 일부 데이터를 삽입합니다.
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' ) ;>
따라서 테이블은 다음과 같습니다.
mysql>코스에서 *를 선택하세요. +------------+------------+---------------+------ -------+ | 강좌명 | 학생_ID | 학생_이름 | 등록_날짜 | +------------+------------+---------------+------ -------+ | CS101 | 161011 | 아미트 싱 | 2019-11-26 | | CS101 | 161029 | 아룬 쿠마르 | 2019-11-30 | | CS101 | 161031 | 싼야 자인 | 2019-12-08 | | CS101 | 161058 | 리야 샤 | 2019-12-15 | | CS101 | 161951 | 사얀 싱 | 2019-12-26 | | CS101 | 162051 | 아미트 샤마 | 2019-12-18 | | CS101 | 166051 | 칼얀 간디 | 2020-01-26 | | CS101 | 167051 | 리시 자나 | 2020-01-02 | | CS101 | 168001 | 아니켓 드라비드 | 2020-01-10 | | CS101 | 168051 | 리타 싱 | 2020-01-13 | +------------+------------+---------------+------ -------+ 10행 세트(0.00초)>
이제 매주, 매년 해당 강좌에 등록된 학생 수를 알아 보겠습니다.
SELECT YEARWEEK(Enroll_Date) YearandWeek, COUNT(Student_id) Student_Enrolled FROM Course GROUP BY YEARWEEK(Enroll_Date) ORDER BY YEARWEEK(Enroll_Date);>
출력 :
+-------------+------------------+ | 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).>