[MySQL] Date Format 변환

2023. 4. 10. 10:39개발공부 기강잡자/SQL

DATETIME Type 데이터 포맷 변경

DATE_FORMAT(컬럼명, 포맷)

변경하려는 날짜 형식으로 포맷을 설정해주면 해당 Datetime 컬럼의 출력 형태를 변환하여 SELECT 한다.

 

ex)

DATE_FORMAT(column_name, '%Y-%m-%d') 👉 '년-월-일' 형태로 출력

DATE_FORMAT(column_name, '%Y') 👉 연도만 출력

 

주요 format string

지정할 수 있는 주요 format string은 다음과 같다.

%Y 년도 (yyyy) 
%y 년도 (yy)
%M 월 (January..December)
%m 월 (00~12)
%D 일을 영어 서수로 출력 (0th, 1st, 2nd, 3rd, 4th...)
%d 일을 기수로 출력 (00..31) 👉 한자리 수도 두글자로 표현
%e 일을 기수로 출력 (0..31)
%a 요일 (Sun..Sat)
%H 시간 (00~23) 👉 24시간 표현식
%h 시간(01~12)
%i 분 (00~59)
%p AM 혹은 PM
%s 초 (00~59)
%T 시간 (hh:mm:ss) 👉 24시간 표현식

더 많은 정보는 참고 : https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format

 

MySQL :: MySQL 8.0 Reference Manual :: 12.7 Date and Time Functions

12.7 Date and Time Functions This section describes the functions that can be used to manipulate temporal values. See Section 11.2, “Date and Time Data Types”, for a description of the range of values each date and time type has and the valid formats

dev.mysql.com


+ 문자열 -> DATETIME 변경

STR_TO_DATE(str, fmt)

: 문자열의 날짜 포맷 형태에 맞게 fmt을 지정해주면 문자열을 DATETIME 형으로 변경해준다.

 

ex) STR_TO_DATE('2023-04-10', '%Y-%m-%d')

: 문자열이 '년-월-일' 형식이므로 fmt 에 '%Y-%m-%d' 을 지정해줘야 문자열을 DATETIME으로 변환할 수 있다.

👉 Datetime 타입으로 2023-04-10 00:00:00  출력

 

참고 : https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-to-date

 

MySQL :: MySQL 8.0 Reference Manual :: 12.7 Date and Time Functions

12.7 Date and Time Functions This section describes the functions that can be used to manipulate temporal values. See Section 11.2, “Date and Time Data Types”, for a description of the range of values each date and time type has and the valid formats

dev.mysql.com