MySQL 함수
날짜 함수
NOW(), CURRENT_TIMESTAMP, CURRENT_TIMESTAMP(), LOCALTIME, LOCALTIME(), LOCALTIMESTAMP, LOCALTIMESTAMP()
현재 시간을 리턴합니다.
SYSDATE()
'YYYY-MM-DD HH:MM:SS' 또는 'YYYYMMDDHHMMSS' 형식으로 현재 날짜나 시간을 리턴합니다. 5.0.13 버전이후부터는 SYSDATE()는 실행 시점의 시간을 표시하므로 NOW()와 차이점이 있습니다. 아래 명령을 실행하여 차이점을 확인하세요.
SELECT NOW(), SLEEP(2), NOW();
SELECT SYSDATE(), SLEEP(2), SYSDATE();
CURDATE(), CURRENT_DATE, CURRENT_DATE()
'YYYY-MM-DD' 또는 'YYYYMMDD' 형식으로 현재 날짜를 리턴합니다.
CURTIME(), CURRENT_TIME, CURRENT_TIME()
'HH:MM:SS' 또는 'HHMMSS.uuuuuu' 형식으로 현재 시간을 리턴합니다.
DATE_FORMAT(date,format)
date로 지정된 날짜른 format에 의해 표시합니다.
기호 | 설명 |
%a |
Sun, ..., Sat와 같은 요일의 약어 표시 |
%b |
Jan, ..., Dec와 같은 달이름 약어 표시 |
%c |
1 ~ 12 사이의 월 표시 |
%D |
1st, 2nd, ... 와 같은 형식의 달의 날짜 표시 |
%d |
00, ..., 31 형식의 달의 날짜 표시 |
%e |
0, ..., 31 형식의 달의 날짜 표시 |
%f |
마이크로초 표시 |
%H |
24시간 형식의 시간 표시(00, ..., 23) |
%h, %I |
12시간 형식의 시간 표시(01, ..., 12 ) |
%i |
분 표시(00, ..., 59) |
%j |
년의 날짜 표시(001, ..., 366) |
%k |
24시간 표시(0, ..., 23) |
%l |
12시간 표시(1, ..., 12) |
%M |
달 이름 표시(Jenuary, ..., December) |
%m |
달 순서 표시(00, ..., 12) |
%p |
AM, PM 표시 |
%r |
12시간제 표시(HH:MM:SS AM or PM) |
%S, %s |
초 표시(00, ..., 59) |
%T |
24시간제 표시(HH:MM:SS) |
%U |
일요일을 시작으로 년의 몇번째 주인가를 00, ..., 53으로 표시한다. |
%u |
월요일을 시작으로 년의 몇번째 주인가를 00, ..., 53으로 표시한다. |
%V |
%X와 함께 쓰여 일요일을 시작으로 년의 몇번째 주인가를 01, ..., 53으로 표시한다. |
%v |
%x와 함께 쓰여 월요일을 시작으로 년의 몇번째 주인가를 01, ..., 53으로 표시한다. |
%W |
요일명 표시(Sunday, ..., Saturday) |
%w |
요일의 순서를 표시(0=Sunday, ..., 6=Saturday) |
%X |
%V와 함께 쓰이며 일요일을 시작하는 주를 기준으로 YYYY 형태의 년도를 표시한다. |
%x |
%v와 함께 쓰이며 월요일을 시작하는 주를 기준으로 YYYY 형태의 년도를 표시한다. |
%Y |
YYYY 형식으로 년도를 표시한다. |
%y |
YY 형식으로 년도를 표시한다. |
%% |
% 문자를 표시한다. |
GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
특정 국가의 형식으로 표시합니다. 메뉴얼을 참고 하세요.
YEAR(date)
'1000'에서 '9999' 사이의 년도를 리턴합니다.
QUARTER(date)
분기를 1 ~4 로 리턴합니다.
MONTH(date)
월을 1 ~ 12 로 리턴합니다.
MONTHNAME(date)
월 이름을 리턴합니다.
WEEK(date[,mode])
요일 순서를 출력합니다. mode가 지정되면 특정 조건에 맞는 값을 리턴합니다.
Mode | First day of week | Range | Week 1 is the first week ... |
0 |
Sunday |
0-53 |
with a Sunday in this year |
1 |
Monday |
0-53 |
with more than 3 days this year |
2 |
Sunday |
1-53 |
with a Sunday in this year |
3 |
Monday |
1-53 |
with more than 3 days this year |
4 |
Sunday |
0-53 |
with more than 3 days this year |
5 |
Monday |
0-53 |
with a Monday in this year |
6 |
Sunday |
1-53 |
with more than 3 days this year |
7 |
Monday |
1-53 |
with a Monday in this year |
WEEKDAY(date)
요일 순서를 리턴합니다. (0=Sunday, 1=Monday, ..., 6=Saturday)
WEEKOFYEAR(date)
년중 주의 순서를 리턴합니다. WEEK(date, 3)과 동일한 표현입니다.
YEARWEEK(date), YEARWEEK(date,mode)
해당되는 년도 및 주를 리턴합니다. mode는 WEEK() 함수와 동일한 동작을 합니다.
DAYNAME(date)
요일 이름을 리턴합니다.
DAYOFYEAR(date)
년중 날짜를 리턴합니다.
DAY(date), DAYOFMONTH(date)
월중 날짜를 리턴합니다.
DAYOFWEEK(date)
주중 순서를 리턴합니다. (1=Sunday, 2=Monday, ..., 7=Saturday)
LAST_DAY(date)
해당 월의 마지막 날짜를 리턴합니다.
DATE(expr)
date나 datetime 형식에서 date 부분만 리턴합니다.
HOUR(time)
시간을 리턴합니다.
MINUTE(time)
분을 리턴합니다.
SECOND(time)
초를 리턴합니다.
TIME(expr)
time이나 datetime 형식에서 time 부분만 리턴합니다.
MICROSECOND(expr)
마이크로초를 리턴합니다.
PERIOD_ADD(P,N)
P기간에 N달만큼 더한 결과를 YYYYMM 형태로 리턴합니다.
PERIOD_DIFF(P1,P2)
YYMM 이나 YYYYMM 형식의 P1과 P2 사이가 몇 달인지를 리턴합니다.
DATE_ADD(date,INTERVAL expr unit), ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)
date로부터 expr만큼 type 단위로 더한 날짜를 리턴합니다.
unit | expr |
MICROSECOND |
마이크로초 |
SECOND |
초 |
MINUTE |
분 |
HOUR |
시간 |
DAY |
날짜 |
WEEK |
주차 |
QUOTER |
분기 |
YEAR |
년 |
SECOND_MICROSECOND |
'초.마이크로초' |
MINUTE_MICROSECOND |
'분:초.마이크로초' |
MINUTE_SECOND |
'분:초' |
HOUR_MICROSECOND |
'시:분:초.마이크로초' |
HOUR_SECOND |
'시:분:초' |
HOUR_MINUTE |
'시:분' |
DAY_MICROSECOND |
'일 시:분:초.마이크로초' |
DAY_SECOND |
'일 시:분:초' |
DAY_MINUTE |
'일 시:분' |
DAY_HOUR |
'일 시' |
YEAR_MONTH |
'년-월' |
DATE_SUB(date,INTERVAL expr unit), SUBDATE(date,INTERVAL expr unit), SUBDATE(expr,days)
date로부터 expr만큼 unit 단위로 뺀 날짜를 리턴합니다.
DATEDIFF(expr1,expr2)
expr1과 expr2 사이의 일 수를 리턴합니다.
TIMEDIFF(expr1,expr2)
expr1과 expr2 사이의 시간을 time 형식으로 리턴합니다.
ADDTIME(expr1,expr2)
date나 datetime 형식의 expr1에 time 형식의 expr1을 더한 time 형식의 값을 리턴합니다.
SUBTIME(expr1,expr2)
date나 datetime 형식의 expr1에 time 형식의 expr1을 뺀 time 형식의 값을 리턴합니다.
TIMESTAMP(expr), TIMESTAMP(expr1,expr2)
date나 datetime 형식의 시간을 datetime 형식으로 리턴합니다. expr2가 주어지면 해당 시간으로 시간을 지정합니다.
TIMESTAMPADD(unit,interval,datetime_expr)
datetime_expr로부터 interval만큼 unit 단위로 더한 시간를 리턴합니다.
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
datetime_expr1과 datetieme_expr2 사이를 unit 단위로 리턴합니다.
TIME_FORMAT(time,format)
time 형식의 시간을 format 형식으로 리턴합니다. format은 DATE_FORMAT() 함수와 동일합니다.
EXTRACT(unit FROM date)
date로부터 unit 형식으로 값을 리턴합니다.
SELECT EXTRACT(YEAR FROM SYSDATE());
SELECT EXTRACT(MONTH FROM SYSDATE());
SELECT EXTRACT(DAY FROM SYSDATE());
FROM_DAYS(N)
0년부터 계산되 날 수로부터 날짜를 리턴합니다.
TO_DAYS(date)
date를 기준으로 0년부터 계산된 날 수를 리턴합니다. 그레고리력을 따르지 않습니다.
SEC_TO_TIME(seconds)
초를 time 형식으로 리턴합니다.
TIME_TO_SEC(time)
time 형식의 시간을 초로 리턴합니다.
STR_TO_DATE(str,format)
문자열str을 format 형식의 시간으로 리턴합니다. format문자열은 DATE_FORMAT() 과 동일합니다.
MAKEDATE(year,dayofyear)
year와 day-of-year 값으로 date 형식(YYYY-MM-DD)의 날짜를 리턴합니다.
MAKETIME(hour,minute,second)
hour, minute, second 값으로 time 형식(HH:MM:SS)의 시간을 리턴합니다.
CONVERT_TZ(dt,from_tz,to_tz)
시간대 변경 함수.
FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)
유닉스 타입의 시간을 리턴합니다.
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
유닉스 시간 ('1970-01-01 00:00:00' 기준)을 리턴합니다. date가 주어지면 date의 유닉스 시간을 리턴합니다.
UTC_DATE, UTC_DATE()
UTC 시간을 리턴합니다.
UTC_TIME, UTC_TIME()
UTC 시간을 리턴합니다.
UTC_TIMESTAMP, UTC_TIMESTAMP()
UTC 시간을 리턴합니다.