WEEK 함수

설명

WEEK 함수는 지정된 인자로부터 0~53 범위의 주를 반환한다. 인자로 DATE, TIMESTAMP, DATETIME 타입을 지정할 수 있으며, INTEGER 타입을 반환한다.

함수의 두 번째 인자인 mode는 생략할 수 있으며, 0~7 범위의 값을 입력한다. 이 값으로 한 주가 일요일부터 시작하는지 월요일부터 시작하는지, 리턴 값의 범위가 0~53인지 1~53인지 설정한다. mode를 생략하면 시스템 파라미터 default_week_format의 값이 사용된다. mode 값의 의미는 다음과 같다.

mode

시작 요일

범위

해당 연도의 첫 번째 주

0

일요일

0~53

일요일이 해당 연도에 속하는 첫 번째 주

1

월요일

0~53

3일 이상이 해당 연도에 속하는 첫 번째 주

2

일요일

1~53

일요일이 해당 연도에 속하는 첫 번째 주

3

월요일

1~53

3일 이상이 해당 연도에 속하는 첫 번째 주

4

일요일

0~53

3일 이상이 해당 연도에 속하는 첫 번째 주

5

월요일

0~53

월요일이 해당 연도에 속하는 첫 번째 주

6

일요일

1~53

3일 이상이 해당 연도에 속하는 첫 번째 주

7

월요일

1~53

월요일이 해당 연도에 속하는 첫 번째 주

mode 값이 0, 1, 4, 5 중 하나이고 날짜가 이전 연도의 마지막 주에 해당하면 WEEK 함수는 0을 반환한다. 이때의 목적은 해당 연도에서 해당 주가 몇 번째 주인지를 아는 것이므로, 1999년의 52번째 주에 해당해도 2000년의 날짜가 0번째 주에 해당되는 0을 반환한다.

SELECT YEAR('2000-01-01'), WEEK('2000-01-01',0);

   year('2000-01-01')   week('2000-01-01', 0)

=============================================

                2000                       0

시작 요일이 속해있는 주의 연도를 기준으로 해당 날짜가 몇 번째 주인지 알려면, mode 값으로 0, 2, 5, 7 중 하나의 값을 사용한다.

SELECT WEEK('2000-01-01',2);

    week('2000-01-01', 2)

========================

                      52

구문

WEEK(date[, mode])

예제

SELECT WEEK('2010-04-05');

   week('2010-04-05', 0)

========================

                      14

 

SELECT WEEK('2010-04-05 12:34:56',2);

   week('2010-04-05 12:34:56',2)

===============================

                              14

 

SELECT WEEK('2010-04-05 12:34:56.7890',4);

   week('2010-04-05 12:34:56.7890',4)

====================================

                                  14               

 

SELECT WEEK ('12:34:56');

 

ERROR: Conversion error in date format.

 

SELECT WEEK('2010-04-05',8);

 

ERROR: Conversion error in date format.