mysql 의 날짜 함수 date_format().
아래는 date_format() 함수에서 사용하는 값이다.
FORAMT |
설명 |
%M |
월(Janeary, December, ...) |
%W |
요일(Sunday, Monday, ...) |
%D |
월(1st, 2dn, 3rd, ...) |
%Y |
연도(1987, 2000, 2013) |
%y |
연도(87, 00, 13) |
%X |
연도(1987, 2000) %V와 같이 쓰임. |
%x |
연도(1987, 2000) %v와 같이 쓰임. |
%a |
요일(Sun, Tue, ...) |
%d |
일(00, 01, 02, ...) |
%e |
일(0, 1, 2, ...) |
%c |
월(1, 2, ..., 12) |
%b |
월(Jan, Dec, ...) |
%j |
몇번째 일(120, 365) |
%H |
시(00, 01, 02, 13, 24) |
%h |
시(01, 02, 12) |
%I(대문자 아이) |
시(01, 02, 12) |
%l(소문자 엘) |
시(1, 2, 12) |
%i |
분(00, 01, 30) |
%r |
"hh:mm:ss AM|PM" |
%T |
"hh:mm:ss" |
%S |
초 |
%s |
초 |
%p |
AM, PM |
%w |
요일(0, 1, 2) 0:일요일 |
%U |
주(시작:일요일) |
%u |
주(시작:월요일) |
%V |
주(시작:일요일) |
%v |
주(시작:월요일) |
Example
The following script uses the DATE_FORMAT() function to display different formats. We will use the NOW() function to get the current date/time:
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
The result would look something like this:
날짜 검색을 할때 조건절에 함수를 쓰면 인덱스를 타지 않는다.
예)
where date_format(regdate,'%Y-%m-%d') = '2013-10-16'
아래와 같이 변경하여 인덱스를 타도록 하면 검색 속도를 높일 수 있겠다.
where 검색컬럼 > '2000-01-01 00:00:00' and 검색컬럼 < '2000-01-01 23:59:59' where 검색컬럼 between '시작날짜시간' and '종료날짜'
1, 2 번 아무거나 써도 무방하다.
date_format() 함수는 조건절 보다 select 절에 쓰면 좋을 듯 하다.
SELECT DATE_FORMAT(regdate,'%Y-%m') FROM temp WHERE regdate BETWEEN '2011-04-27' AND '2011-04-28'