6.2.3 날짜형 함수
날짜형 함수는 날짜와 시간 데이터를 대상으로 연산하는 함수로, 숫자형, 문자형 함수와 더불어 자주 사용되는 함수입니다. 기본적인 날짜형 함수는 표 6-5에 나와 있습니다.
▼ 표 6-5 날짜형 함수
함수 |
반환값 |
사용 예 |
CURDATE() CURRENT_DATE() CURRENT_DATE |
현재 날짜 반환 |
CURDATE() → 2021-01-01 |
CURTIME(), CURRENT_TIME() CURRENT_TIME |
현재 시각을 시:분:초 형태로 반환 |
CURTIME() → 20:02:10 |
NOW(), CURRENT_TIMESTAMP() CURRENT_TIMESTAMP |
현재 날짜와 시간 반환 |
NOW() → 2021-01-01 20:02:10 |
DAYNAME (date) |
date의 요일을 반환 |
DAYNAME('2021-01-01') → Friday |
DAYOFMONTH(date) DAY(date) |
date에서 일을 반환 |
DAYOFMONTH('2021-01-02') → 2 |
DAYOFWEEK(date) |
date에서 일을 요일별 숫자로 반환(1: 일요일, 7: 토요일) |
DAYOFWEEK('2021-01-02') → 7 |
DAYOFYEAR(date) |
date에서 1년 기준으로 날짜를 일수로 반환, 반환값의 범위는 1~366 |
DAYOFMONTH('2021-12-31') → 365 |
LAST_DAY(date) |
date가 속한 월의 마지막 날짜 반환 |
LAST_DAY('2021-01-02') → 2021-01-31 |
YEAR(date) |
date에서 연 반환 |
YEAR('2021-01-02') → 2021 |
MONTH(date) |
date에서 월 반환 |
MONTH('2021-02-02') → 2 |
QUARTER(date) |
date의 분기 반환 |
QUARTER('2021-02-02') → 1 |
WEEKOFYEAR(date) |
date가 몇 주차인지 반환(1~53주) |
WEEKOFYEAR('2021-02-22') → 8 |
HOUR(time) |
time에서 시간 반환 |
HOUR('10:53:24') → 10 |
MINUTE(time) |
time에서 분 반환 |
MINUTE('10:53:24') → 53 |
SECOND(time) |
time에서 초 반환 |
SECOND('10:53:24') → 24 |
DATE(expr) |
expr에서 날짜 부분 반환 |
DATE('2021-01-02 12:32:10') → 2021-01-02 |
TIME(expr) |
expr에서 시간 부분 반환 |
TIME('2021-01-02 12:32:10') → 12:32:10 |
DATE_ADD(date, INTERVAL expr unit) ADDDATE(date, INTERVAL expr unit) |
date에 expr unit을 더한 날짜 반환 |
DATE_ADD('2021-01-10', INTERVAL 10 DAY) → 2021-01-20 |
ADDDATE(expr, days) |
expr에 days를 더한 날짜 반환 |
ADDDATE('2021-01-10', 10) → 2021-01-20 |
DATE_SUB(date, INTERVAL expr unit) SUBDATE(date, INTERVAL expr unit) |
date에 expr unit을 뺀 날짜 반환 |
DATE_SUB('2021-01-10', |
SUBDATE(expr, days) |
expr에서 days를 뺀 날짜 반환 |
SUBDATE('2021-01-10', 5) → |
EXTRACT(unit FROM date) |
date에서 unit으로 지정된 부분 반환 |
EXTRACT(YEAR_MONTH FROM '2021-01-31') → 202101 |
DATEDIFF(expr1, expr2) |
expr1에서 expr2를 뺀 날짜를 일수로 반환 |
DATEDIFF('2021-01-31', '2021-01-21') → 10 |
DATE_FORMAT(date, format) |
date를 format에 명시된 형태로 변환해 반환 |
DATE_FORMAT('2021-01-31', %y %) → 21/01/31 |
STR_TO_DATE(str, format) |
str을 format에 맞게 날짜로 변환 |
STR_TO_DATE('21,1,2021', '%d,%m,%Y') → 2021-01-21 |
MAKEDATE(year, dayofyear) |
year에 dayofyear에 해당하는 일수를 더한 날짜 반환 |
MAKEDATE(2021, 100) → 2021-04-10 |
SYSDATE() |
현재 날짜 반환 |
SYSDATE() → 2021-01-31 12:39:20 |
WEEK(date, mode) |
date가 몇 주차인지 반환 |
YEARWEEK('2021-10-01') → 39 |
YEARWEEK(date, mode) |
date가 속한 연도와 주차 반환 |
YEARWEEK('2021-10-01') → 202139 |