Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 CURDATE() 현재 날짜 형식 변경하기 – DATE_FORMAT() 완벽 가이드

MySQL에서 CURDATE() 함수는 기본적으로 'YYYY-mm-dd' 형식(예: 2019-08-08)으로 현재 날짜를 반환합니다. 만약 이 형식을 다른 스타일로 변경하고 싶다면 DATE_FORMAT() 함수를 사용하면 됩니다. 이 글에서는 현재 날짜의 형식을 변경하는 방법과, 실제 테이블에 저장된 날짜 데이터의 형식을 변환하는 방법까지 예제와 함께 자세히 알아보겠습니다.

1. MySQL에서 현재 날짜 확인하기

먼저 CURDATE() 함수를 실행하여 현재 날짜가 어떤 형식으로 출력되는지 확인해 보겠습니다.

mysql> select curdate();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+------------+
| curdate()  |
+------------+
| 2019-08-08 |
+------------+
1 row in set (0.00 sec)

기본 형식이 'YYYY-mm-dd'(년-월-일) 순서로 표시되는 것을 확인할 수 있습니다.

2. DATE_FORMAT()으로 현재 날짜 형식 변경하기

CURDATE()의 날짜 형식을 변경하려면 DATE_FORMAT() 함수 안에 원하는 형식 지정자를 넣어주면 됩니다. 예를 들어 'mm/dd/YYYY' 형식(월/일/년)으로 변경하는 쿼리는 다음과 같습니다.

mysql> select date_format(curdate(), '%m/%d/%Y');

실행 결과는 아래와 같습니다.

+------------------------------------+
| date_format(curdate(), '%m/%d/%Y') |
+------------------------------------+
| 08/08/2019                         |
+------------------------------------+
1 row in set (0.00 sec)

날짜가 '08/08/2019'처럼 월/일/년 순서로 성공적으로 변경된 것을 볼 수 있습니다.

주요 날짜 형식 지정자 정리

DATE_FORMAT()에서 자주 사용되는 형식 지정자는 다음과 같습니다.

  • %Y : 4자리 연도 (예: 2019)
  • %y : 2자리 연도 (예: 19)
  • %m : 2자리 월 (01~12)
  • %c : 월 (0 없이 1~12)
  • %d : 2자리 일 (01~31)
  • %e : 일 (0 없이 1~31)
  • %W : 요일 이름 (예: Thursday)
  • %M : 월 이름 (예: August)

3. 테이블 생성 및 데이터 삽입하기

이번에는 실제 테이블에 저장된 날짜 데이터의 형식을 변경해 보겠습니다. 먼저 예제용 테이블을 생성합니다.

mysql> create table DemoTable (
   ArrivalDate date
);
Query OK, 0 rows affected (0.50 sec)

다음으로 INSERT 명령을 사용하여 테이블에 레코드를 삽입합니다.

mysql> insert into DemoTable values('2019-01-10');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('2016-12-18');
Query OK, 1 row affected (0.12 sec)

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과는 다음과 같습니다.

+-------------+
| ArrivalDate |
+-------------+
| 2019-01-10  |
| 2016-12-18  |
+-------------+
2 rows in set (0.00 sec)

4. 테이블의 날짜 데이터 형식 변경하기

테이블에 저장된 날짜 컬럼의 형식을 변경하는 것도 동일한 방식입니다. DATE_FORMAT() 함수에 컬럼명과 원하는 형식을 지정하면 됩니다.

mysql> select date_format(ArrivalDate, '%m/%d/%Y') from DemoTable;

위 쿼리의 실행 결과는 다음과 같습니다.

+--------------------------------------+
| date_format(ArrivalDate, '%m/%d/%Y') |
+--------------------------------------+
| 01/10/2019                           |
| 12/18/2016                           |
+--------------------------------------+
2 rows in set (0.00 sec)

저장된 날짜들이 모두 'mm/dd/YYYY' 형식으로 깔끔하게 변환되어 출력되었습니다.

마무리

MySQL에서 CURDATE()나 테이블의 DATE 타입 컬럼은 기본적으로 'YYYY-mm-dd' 형식으로 저장·표시됩니다. 화면에 보여줄 때 다른 형식이 필요하다면 DATE_FORMAT() 함수를 활용하면 됩니다. 단, DATE_FORMAT()표시 형식만 변경할 뿐 실제 저장된 값은 그대로 유지된다는 점을 기억해 두시기 바랍니다.