MySQL 데이터베이스에 저장된 날짜는 기본적으로 YYYY-MM-DD 형식(예: 2020-04-30)으로 저장됩니다. 하지만 경우에 따라 DD-MM-YYYY 형식(예: 30-04-2020)처럼 다른 형태로 날짜를 화면에 표시해야 할 필요가 있습니다.
이럴 때 MySQL에서 제공하는 DATE_FORMAT() 함수를 사용하면 간단하게 해결할 수 있습니다. 이 함수는 저장된 날짜 값을 원하는 형식의 문자열로 변환하여 반환합니다.
DATE_FORMAT() 함수 문법
SELECT DATE_FORMAT(yourColumnName, '%d-%m-%Y') AS anyAliasName FROM yourTableName;
여기서 사용된 형식 지정자의 의미는 다음과 같습니다.
- %d : 일(day)을 두 자리 숫자로 표시 (01~31)
- %m : 월(month)을 두 자리 숫자로 표시 (01~12)
- %Y : 연도(year)를 네 자리 숫자로 표시
실습 예제
1. 테이블 생성
먼저 날짜 컬럼을 가진 테이블을 생성합니다.
mysql> create table demo80
-> (
-> due_date date
-> );
Query OK, 0 rows affected (0.74 sec)2. 데이터 삽입
INSERT 명령어를 사용해 샘플 날짜 데이터를 입력합니다.
mysql> insert into demo80 values('2020-04-30');
Query OK, 1 row affected (0.14 sec)
mysql> insert into demo80 values('2016-01-10');
Query OK, 1 row affected (0.17 sec)
mysql> insert into demo80 values('2018-03-21');
Query OK, 1 row affected (0.12 sec)3. 저장된 데이터 확인
SELECT 문으로 테이블의 레코드를 조회해 보겠습니다.
mysql> select *from demo80;
실행 결과는 다음과 같습니다. 날짜가 기본 형식인 YYYY-MM-DD로 출력되는 것을 확인할 수 있습니다.
출력 결과
+------------+ | due_date | +------------+ | 2020-04-30 | | 2016-01-10 | | 2018-03-21 | +------------+ 3 rows in set (0.00 sec)
날짜 형식을 DD-MM-YYYY로 변환하는 쿼리
이제 DATE_FORMAT() 함수를 적용하여 2020-04-30 대신 30-04-2020 형식으로 날짜를 표시하는 쿼리입니다.
mysql> select date_format(due_date,'%d-%m-%Y') as ShowDate from demo80;
실행 결과는 다음과 같습니다.
출력 결과
+------------+ | ShowDate | +------------+ | 30-04-2020 | | 10-01-2016 | | 21-03-2018 | +------------+ 3 rows in set (0.03 sec)
마무리
이처럼 MySQL의 DATE_FORMAT() 함수를 활용하면 데이터베이스에 저장된 날짜 값은 그대로 유지하면서, 화면에 보여지는 형식만 자유롭게 변경할 수 있습니다. 참고로 이 함수는 단순히 표시 형식만 바꾸는 것이므로, 실제 테이블에 저장된 DATE 타입 데이터에는 영향을 주지 않습니다. 프로젝트 요구 사항에 맞게 다양한 형식 지정자를 조합하여 활용해 보시기 바랍니다.