MySQL에서 DateTime 값을 문자열로 변환하려면 DATE_FORMAT() 함수를 사용하면 됩니다. 이 함수는 날짜·시간 데이터를 원하는 형식의 문자열로 자유롭게 변환해 주기 때문에, 화면 출력이나 리포트 생성 등 다양한 상황에서 매우 유용하게 활용됩니다.
DATE_FORMAT() 함수의 기본 문법
기본적인 사용 문법은 다음과 같습니다.
SELECT DATE_FORMAT(컬럼명, '%d %m %y') AS 별칭 FROM 테이블명;
여기서 형식 지정자 %d, %m, %y는 각각 일(day), 월(month), 두 자리 연도(year)를 의미합니다. 필요에 따라 다양한 형식 지정자를 조합하여 원하는 출력 형태를 만들 수 있습니다.
실습: 예제 테이블 만들기
개념을 쉽게 이해하기 위해 먼저 예제 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> CREATE TABLE DateAsStringDemo
-> (
-> YourDateTime DATETIME
-> );
Query OK, 0 rows affected (0.57 sec)
DATETIME 값 삽입하기
CURDATE() 함수를 사용하여 현재 날짜를 테이블에 삽입합니다.
mysql> INSERT INTO DateAsStringDemo VALUES(CURDATE()); Query OK, 1 row affected (0.24 sec)
저장된 데이터 확인하기
SELECT 문으로 모든 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM DateAsStringDemo;
실행 결과는 다음과 같습니다.
+---------------------+ | YourDateTime | +---------------------+ | 2018-11-26 00:00:00 | +---------------------+ 1 row in set (0.00 sec)
DateTime을 문자열로 변환하기
이제 DATE_FORMAT() 함수를 사용하여 날짜 값을 문자열로 변환하는 쿼리는 다음과 같습니다.
mysql> SELECT DATE_FORMAT(YourDateTime, '%d %m %y') AS YourDateAsString FROM DateAsStringDemo;
실행 결과는 다음과 같습니다.
+------------------+ | YourDateAsString | +------------------+ | 26 11 18 | +------------------+ 1 row in set (0.00 sec)
결과를 보면 '2018-11-26'이라는 DateTime 값이 '26 11 18'이라는 문자열로 변환된 것을 확인할 수 있습니다. 이처럼 DATE_FORMAT() 함수의 두 번째 인자에 원하는 형식 지정자를 조합하면, 날짜 데이터를 어떤 형태의 문자열로든 자유롭게 변환할 수 있습니다.