더북(TheBook)

YEARWEEK(date, [mode])

YEARWEEK() 함수는 매개변수로 입력된 날짜가 속한 주차를 반환합니다. WEEK() 함수와는 달리 YEARWEEK() 함수는 연도와 주차를 함께 반환합니다. 두 번째 매개변수인 mode 값을 명시하면 주차 계산 방식은 WEEK() 함수와 동일합니다.

코드 6-36

SELECT YEARWEEK('2021-01-03')    NOMODE,
       YEARWEEK('2021-01-03', 0) MODE0,
       YEARWEEK('2021-01-03', 1) MODE1,
       YEARWEEK('2021-01-03', 2) MODE2,
       YEARWEEK('2021-01-03', 3) MODE3,
       YEARWEEK('2021-01-03', 4) MODE4,
       YEARWEEK('2021-01-03', 5) MODE5,
       YEARWEEK('2021-01-03', 6) MODE6,
       YEARWEEK('2021-01-03', 7) MODE7;

실행결과

결과를 보면 YEARWEEK() 함수는 연도와 주차를 동시에 반환함을 알 수 있습니다. 여기서 mode 값이 1일 때와 5일 때 결과가 WEEK() 함수와는 다릅니다. WEEK() 함수는 모두 0주차를 반환하지만, YEARWEEK() 함수는 0주차를 반환하지 않고 각각 전년 마지막 주차를 반환합니다.

날짜형 함수는 그 수도 많고 사용법도 복잡합니다. 같은 기능을 제공하는 함수도 여럿 있고요. 지금까지 소개한 함수 외에도 MySQL에서는 많은 날짜형 함수를 제공하는데, 여기서 소개한 함수만 알아 둬도 거의 모든 날짜 계산을 할 수 있습니다.

TIP

날짜형 함수 중에서 SYSDATE(), CURDATE(), NOW(), LAST_DAY(), YEAR(), MONTH(), WEEKOFYEAR(), WEEK(), DATE_ADD(), ADDDATE(), DATE_SUB(), SUBDATE() 함수가 자주 사용되니 꼭 알아두세요.

1분 퀴즈 4

현재 날짜를 기준으로 현재 일이 속한 월의 마지막 날짜에 해당하는 요일을 구하는 쿼리를 작성하세요.

정답 및 해설

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.