MySQL에서 날짜를 원하는 형식으로 출력하려면 DATE_FORMAT() 함수를 사용해야 합니다. 이 함수는 DATE 타입의 값을 지정한 형식 문자열에 맞춰 변환해 주며, 보고서나 화면 출력 시 매우 유용하게 활용됩니다.
아래에서 실제 예제를 통해 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저 날짜 컬럼을 포함한 테이블을 생성합니다.
mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, ArrivalDate date ); Query OK, 0 rows affected (0.60 sec)
2. 샘플 데이터 삽입
INSERT 문을 사용해 몇 개의 날짜 레코드를 입력합니다.
mysql> insert into DemoTable(ArrivalDate) values('2019-01-31');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(ArrivalDate) values('2019-04-26');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(ArrivalDate) values('2019-03-01');
Query OK, 1 row affected (0.13 sec)3. 저장된 레코드 확인
SELECT 문으로 테이블의 전체 데이터를 조회해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+----+-------------+ | Id | ArrivalDate | +----+-------------+ | 1 | 2019-01-31 | | 2 | 2019-04-26 | | 3 | 2019-03-01 | +----+-------------+ 3 rows in set (0.00 sec)
기본적으로 DATE 타입은 YYYY-MM-DD 형식으로 저장되는 것을 확인할 수 있습니다.
4. DATE_FORMAT()으로 날짜 형식 변경
이제 DATE_FORMAT() 함수를 사용해 날짜를 일-월이름-연도 형식으로 출력해 보겠습니다.
mysql> select Id,DATE_FORMAT(ArrivalDate, '%d-%M-%Y') from DemoTable;
실행 결과는 다음과 같습니다.
+----+--------------------------------------+ | Id | DATE_FORMAT(ArrivalDate, '%d-%M-%Y') | +----+--------------------------------------+ | 1 | 31-January-2019 | | 2 | 26-April-2019 | | 3 | 01-March-2019 | +----+--------------------------------------+ 3 rows in set (0.06 sec)
자주 사용하는 DATE_FORMAT() 형식 지정자
형식 문자열에 사용할 수 있는 대표적인 지정자는 다음과 같습니다.
%d— 일(01~31)%M— 월 이름(January, February 등)%m— 월 숫자(01~12)%Y— 4자리 연도%y— 2자리 연도
예를 들어 '%Y년 %m월 %d일'처럼 한글과 조합하여 사용할 수도 있으므로, 서비스 요구 사항에 맞게 자유롭게 응용해 보시기 바랍니다.