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 시간을 리턴합니다.
'Projects > 일반론' 카테고리의 다른 글
ip와 dns를 바꿔주는 bat (0) | 2011.04.14 |
---|---|
내가 짠 서브쿼리 2 Subquery in MySQL (0) | 2010.12.17 |
내가 짠 서브쿼리 Subquery in MySQL (0) | 2010.12.17 |