MySQL에서 날짜를 원하는 형식으로 출력하려면 FORMATDATE()가 아닌 DATE_FORMAT() 함수를 사용해야 합니다. 많은 분들이 함수 이름을 혼동하시는데, MySQL에 존재하는 올바른 함수는 DATE_FORMAT()입니다.
DATE_FORMAT() 기본 문법
SELECT *, DATE_FORMAT(날짜컬럼명, '원하는형식') AS 별칭 FROM 테이블명;
위 문법을 이해하기 위해 실제 예제 테이블을 만들어 보겠습니다.
예제 테이블 생성
먼저 사용자 로그인 정보를 저장할 테이블을 생성합니다.
mysql> create table DateFormatDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(10),
-> UserLoginDate date
-> );
Query OK, 0 rows affected (0.94 sec)다음으로 INSERT 명령어를 사용해 샘플 데이터를 입력합니다.
mysql> insert into DateFormatDemo(UserName,UserLoginDate) values('Mike',curdate());
Query OK, 1 row affected (0.21 sec)
mysql> insert into DateFormatDemo(UserName,UserLoginDate) values('Sam','2018-05-09');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DateFormatDemo(UserName,UserLoginDate) values('Carol','2016-01-15');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DateFormatDemo(UserName,UserLoginDate) values('Bob','2015-12-31');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DateFormatDemo(UserName,UserLoginDate) values('David','2012-08-19');
Query OK, 1 row affected (0.09 sec)저장된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DateFormatDemo;
실행 결과는 다음과 같습니다.
+----+----------+---------------+ | Id | UserName | UserLoginDate | +----+----------+---------------+ | 1 | Mike | 2019-02-06 | | 2 | Sam | 2018-05-09 | | 3 | Carol | 2016-01-15 | | 4 | Bob | 2015-12-31 | | 5 | David | 2012-08-19 | +----+----------+---------------+ 5 rows in set (0.00 sec)
SELECT * 와 DATE_FORMAT() 함께 사용하기
이제 SELECT * 쿼리와 DATE_FORMAT() 함수를 함께 사용하여 날짜 형식을 변경해 보겠습니다. 여기서는 '%d-%m-%Y' 형식을 적용하여 일-월-년 순서로 출력합니다.
mysql> select *,DATE_FORMAT(UserLoginDate,'%d-%m-%Y') as NewFormatOfDate from DateFormatDemo;
실행 결과는 다음과 같습니다.
+----+----------+---------------+-----------------+ | Id | UserName | UserLoginDate | NewFormatOfDate | +----+----------+---------------+-----------------+ | 1 | Mike | 2019-02-06 | 06-02-2019 | | 2 | Sam | 2018-05-09 | 09-05-2018 | | 3 | Carol | 2016-01-15 | 15-01-2016 | | 4 | Bob | 2015-12-31 | 31-12-2015 | | 5 | David | 2012-08-19 | 19-08-2012 | +----+----------+---------------+-----------------+ 5 rows in set (0.00 sec)
주요 날짜 형식 지정자
DATE_FORMAT()에서 자주 사용되는 형식 지정자는 다음과 같습니다.
- %Y : 4자리 연도 (예: 2024)
- %y : 2자리 연도 (예: 24)
- %m : 2자리 월 (01~12)
- %d : 2자리 일 (01~31)
- %H : 24시간제 시간
- %i : 분
- %s : 초
이처럼 DATE_FORMAT() 함수를 활용하면 원본 데이터는 그대로 유지하면서, 조회 결과만 원하는 날짜 형식으로 손쉽게 변환할 수 있습니다.