DATE_FORMAT 함수
MySQL에서 시간,날짜를 원하는 형태로 표기 방식을 바꿔주는 함수
함수의 구성은 DATE_FORMAT(date,format) 이며, 문자열 date에 값의 형식을 format으로 지정한다.
아래 표에 표시된 지정자를 format문자열에 사용할 수 있다,
가장 많이 쓰는 형태 중 하나인 yyyy-mm-dd 라면, 다음과 같다.
(여기서 ins_date라는 날짜/시간형태(yyyy-mm-dd hh:mm:ss인 column)
DATE_FORMAT(ins_date, '%Y-%m-%d')
SpecifierDescription
지정자 | 설명 | 부연 |
%a | Abbreviated weekday name (Sun..Sat) | |
%b | Abbreviated month name (Jan..Dec) | |
%c | Month, numeric (0..12) | |
%D | Day of the month with English suffix (0th, 1st, 2nd, 3rd, …) | |
%d | Day of the month, numeric (00..31) | |
%e | Day of the month, numeric (0..31) | |
%f | Microseconds (000000..999999) | |
%H | Hour (00..23) | |
%h | Hour (01..12) | |
%I | Hour (01..12) | |
%i | Minutes, numeric (00..59) | |
%j | Day of year (001..366) | |
%k | Hour (0..23) | 24시간제 |
%l | Hour (1..12) | 12시간제 |
%M | Month name (January..December) | 월 이름(name) |
%m | Month, numeric (00..12) | 월, 숫자(numeric) |
%p | AM or PM | |
%r | Time, 12-hour (hh:mm:ss followed by AM or PM) | 12시간제, AM/PM |
%S | Seconds (00..59) | |
%s | Seconds (00..59) | |
%T | Time, 24-hour (hh:mm:ss) | 24시간제 |
%U | Week (00..53), where Sunday is the first day of the week; WEEK() mode 0 | 주 표시(일요일 첫번째) |
%u | Week (00..53), where Monday is the first day of the week; WEEK() mode 1 | 주 표시(월요일 첫번째) |
%V | Week (01..53), where Sunday is the first day of the week; WEEK() mode 2; used with %X | 주 표시(일요일 첫번째,01~) |
%v | Week (01..53), where Monday is the first day of the week; WEEK() mode 3; used with %x | 주 표시(월요일 첫번째,01~) |
%W | Weekday name (Sunday..Saturday) | |
%w | Day of the week (0=Sunday..6=Saturday) | |
%X | Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V | |
%x | Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v | |
%Y | Year, numeric, four digits | 4자리 연도표기 |
%y | Year, numeric (two digits) | 2자리 연도표기 |
%% | A literal % character | %를 입력 |
%x | x, for any “x” not listed above |
출처: https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format
DATE_FORMAT 함수의 활용
데이터를 집계하거나, 다른 함수와의 결합할때 쓴다.
예를 들면 시간이나 날짜를 조작하는 함수를 쓰고 마지막에 date_format으로 덮어주는 식으로 사용한다.
아래는 날짜값에 하루를 더한 값의 표기 방식을 바꾼 형태이다.
(위랑 같은 ins_date라는 column)
DATE_FORMAT(DATE_ADD(ins_date,INTERVAL 1 DAY),'%Y-%m-%d')
WHERE절에서도 범위를 효과적으로 지정할 때도 사용한다.
이렇게 사용하면, 쿼리도 간결해지고 변수로 사용하기도 더 쉬워진다.
(그러나, 성능은 어떨지 모르겠다.)
WHERE DATE_FORMAT(ins_date, '%Y%m) IN '202209' # 2022년 9월 전체
반응형
'데이터 > SQL' 카테고리의 다른 글
[MySQL] ST_DISTANCE_SPHERE 함수를 활용하여 거리/반경 구하기 (0) | 2023.05.05 |
---|---|
[MySQL] Order by 구문으로 숫자가 정렬되지 않을 때 (0) | 2022.11.16 |
[MySQL] 정규 표현식(instr(), like(), replace(), substr()) (0) | 2022.10.31 |
[MySQL] 없는 시간 표시하기(재귀적 CTE) (0) | 2022.10.26 |
[SQL] 윈도우 함수(Window Functions) (0) | 2022.10.18 |
댓글