MySQL 날짜 형식을 d/m/y로 변경하기
MySQL에서 저장된 날짜 데이터를 일/월/년(d/m/y) 형식으로 표시하고 싶다면 DATE_FORMAT() 함수를 사용하면 됩니다. 이 함수는 날짜 값을 원하는 형식의 문자열로 손쉽게 변환해 줍니다.
기본 문법
SELECT DATE_FORMAT(컬럼명, '%d/%m/%Y') AS 별칭 FROM 테이블명;
여기서 사용된 형식 지정자의 의미는 다음과 같습니다.
- %d : 일(day)을 두 자리 숫자로 표시 (01~31)
- %m : 월(month)을 두 자리 숫자로 표시 (01~12)
- %Y : 연도(year)를 네 자리 숫자로 표시
예제 테이블 생성
먼저 실습에 사용할 테이블을 만들어 보겠습니다.
mysql> CREATE TABLE DemoTable
(
AdmissionDate date
);
Query OK, 0 rows affected (0.89 sec)데이터 삽입
INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.
mysql> INSERT INTO DemoTable VALUES('2019-01-21');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES('2019-09-09');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES('2018-12-31');
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable VALUES('2017-11-01');
Query OK, 1 row affected (0.16 sec)저장된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM DemoTable;
실행 결과는 다음과 같습니다. 기본적으로 MySQL은 날짜를 YYYY-MM-DD 형식으로 저장하고 표시합니다.
+---------------+ | AdmissionDate | +---------------+ | 2019-01-21 | | 2019-09-09 | | 2018-12-31 | | 2017-11-01 | +---------------+ 4 rows in set (0.00 sec)
날짜 형식을 d/m/y로 변환하는 쿼리
이제 DATE_FORMAT() 함수를 적용하여 날짜를 d/m/y 형식으로 변경해 보겠습니다.
mysql> SELECT DATE_FORMAT(AdmissionDate,'%d/%m/%Y') AS AdmissionDate FROM DemoTable;
위 쿼리를 실행하면 다음과 같이 날짜가 일/월/년 순서로 출력됩니다.
+---------------+ | AdmissionDate | +---------------+ | 21/01/2019 | | 09/09/2019 | | 31/12/2018 | | 01/11/2017 | +---------------+ 4 rows in set (0.00 sec)
참고 사항
DATE_FORMAT() 함수는 결과를 문자열로 반환한다는 점에 유의하세요. 즉, 원본 컬럼의 데이터 타입이나 저장된 값 자체가 변경되는 것은 아니며, 조회 시점에 표시 형식만 바뀌는 것입니다. 따라서 정렬이나 날짜 연산이 필요한 경우에는 원본 DATE 타입 컬럼을 기준으로 작업하는 것이 좋습니다.