DATE_FORMAT() 함수로 날짜 형식 변경하기
MySQL에서 날짜 형식을 변경하려면 DATE_FORMAT() 함수를 사용하면 됩니다. 이 함수는 저장된 날짜(datetime) 값을 원하는 형식의 문자열로 변환해 주며, 다양한 형식 지정자를 조합해 연도, 월, 일, 시간 등을 자유롭게 표현할 수 있습니다.
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable1906
(
DueTime datetime
);
Query OK, 0 rows affected (0.00 sec)
테이블에 데이터 삽입하기
insert 명령을 사용하여 테이블에 여러 개의 레코드를 삽입합니다.
mysql> insert into DemoTable1906 values(now());
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1906 values(curdate());
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1906 values('2017-10-11');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1906 values('2015-01-12');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1906 values('2018-04-25');
Query OK, 1 row affected (0.00 sec)
저장된 레코드 확인하기
select 문을 사용하여 테이블의 모든 레코드를 조회합니다.
mysql> select * from DemoTable1906;
위 쿼리는 다음과 같은 결과를 출력합니다.
+---------------------+
| DueTime |
+---------------------+
| 2019-12-11 13:54:22 |
| 2019-12-11 00:00:00 |
| 2017-10-11 00:00:00 |
| 2015-01-12 00:00:00 |
| 2018-04-25 00:00:00 |
+---------------------+
5 rows in set (0.00 sec)
날짜 형식 변경 쿼리 실행하기
다음은 DATE_FORMAT() 함수를 사용하여 날짜를 '%d-%m-%Y', 즉 '일-월-연도' 형태로 변환하는 쿼리입니다.
mysql> select date_format(DueTime,'%d-%m-%Y') from DemoTable1906;
실행 결과는 다음과 같습니다.
+---------------------------------+
| date_format(DueTime,'%d-%m-%Y') |
+---------------------------------+
| 11-12-2019 |
| 11-12-2019 |
| 11-10-2017 |
| 12-01-2015 |
| 25-04-2018 |
+---------------------------------+
5 rows in set (0.00 sec)
자주 사용되는 DATE_FORMAT 형식 지정자
DATE_FORMAT() 함수에서 자주 쓰이는 주요 형식 지정자는 다음과 같습니다.
- %Y : 4자리 연도 (예: 2024)
- %y : 2자리 연도 (예: 24)
- %m : 2자리 월 (01~12)
- %d : 2자리 일 (01~31)
- %H : 24시간제 시간 (00~23)
- %i : 분 (00~59)
- %s : 초 (00~59)
이처럼 DATE_FORMAT() 함수를 활용하면 테이블에 저장된 원본 datetime 데이터는 그대로 유지하면서, 조회 시점에 원하는 날짜 형식으로 간편하게 변환하여 출력할 수 있습니다.