Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL GET_FORMAT() 함수란? 용도와 사용법 총정리

MySQL의 GET_FORMAT() 함수는 DATE, TIME, DATETIME 또는 TIMESTAMP 같은 날짜·시간 데이터 타입을, 두 번째 인자로 지정한 표준 형식에 맞는 포맷 문자열로 변환해 주는 함수입니다. 표준 형식으로는 EUR, INTERNAL, ISO, JIS, USA 다섯 가지를 사용할 수 있으며, 반환되는 포맷 코드는 DATE_FORMAT() 함수에서 사용하는 것과 동일합니다.

이 함수는 단독으로 사용되기보다는 DATE_FORMAT()이나 STR_TO_DATE() 함수와 함께 조합하여 활용할 때 특히 유용합니다. 국가별·표준별 날짜 형식을 일일이 외우지 않아도 되기 때문에 코드의 가독성과 유지보수성을 높여 줍니다.

문법(Syntax)

GET_FORMAT(data_type, standard_format)

data_type에는 DATE, TIME, DATETIME, TIMESTAMP 중 하나를, standard_format에는 EUR, INTERNAL, ISO, JIS, USA 중 하나를 지정합니다.

사용 예제

다음 예제는 DATE 타입에 대해 미국(USA) 표준과 ISO 표준의 날짜 포맷을 조회하는 쿼리입니다.

mysql> Select GET_FORMAT(DATE, 'USA') AS 'AMERICAN Format',
-> GET_FORMAT(DATE, 'ISO') AS 'ISO Format';

+-----------------+------------+
| AMERICAN Format | ISO Format |
+-----------------+------------+
| %m.%d.%Y        | %Y-%m-%d   |
+-----------------+------------+
1 row in set (0.00 sec)

위 쿼리는 미국에서 사용하는 날짜 형식(%m.%d.%Y)과 ISO 표준 날짜 형식(%Y-%m-%d)을 반환합니다.

이번에는 TIME 타입에 대해 조회해 보겠습니다.

mysql> Select GET_FORMAT(TIME, 'USA') AS 'AMERICAN Format',
-> GET_FORMAT(TIME, 'ISO') AS 'ISO Format';

+-----------------+------------+
| AMERICAN Format | ISO Format |
+-----------------+------------+
| %h:%i:%s %p     | %H:%i:%s   |
+-----------------+------------+
1 row in set (0.00 sec)

미국식 시간 표현은 오전/오후를 나타내는 %p가 포함된 12시간제(%h:%i:%s %p)로 반환되고, ISO 표준은 24시간제(%H:%i:%s)로 반환됩니다.

주요 반환값 정리

자주 사용되는 조합의 반환값을 표로 정리하면 다음과 같습니다.

함수 호출반환값
GET_FORMAT(DATE,'USA')'%m.%d.%Y'
GET_FORMAT(DATE,'ISO')'%Y-%m-%d'
GET_FORMAT(DATE,'EUR')'%d.%m.%Y'
GET_FORMAT(DATE,'JIS')'%Y-%m-%d'
GET_FORMAT(DATE,'INTERNAL')'%Y%m%d'
GET_FORMAT(TIME,'USA')'%h:%i:%s %p'
GET_FORMAT(TIME,'ISO')'%H:%i:%s'
GET_FORMAT(DATETIME,'ISO')'%Y-%m-%d %H:%i:%s'
GET_FORMAT(DATETIME,'USA')'%Y-%m-%d %H.%i.%s'

DATE_FORMAT()과 함께 활용하기

GET_FORMAT()은 다른 함수의 인자로 전달하여 실질적인 포맷팅 작업에 활용할 수 있습니다.

mysql> SELECT DATE_FORMAT('2024-05-15', GET_FORMAT(DATE, 'EUR')) AS result;
+------------+
| result     |
+------------+
| 15.05.2024 |
+------------+

이처럼 GET_FORMAT()을 활용하면 유럽식 날짜 형식으로 손쉽게 변환할 수 있으며, 반대로 STR_TO_DATE()와 함께 사용하면 특정 표준 형식의 문자열을 DATE 타입으로 파싱할 때도 유용하게 쓰입니다.