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

MySQL에서 레코드 삽입 시 DATE_FORMAT()으로 날짜 형식 지정하기

MySQL에서 레코드를 삽입하면서 날짜 형식을 지정하고 싶다면, INSERT 문 안에서 DATE_FORMAT() 함수를 활용하면 됩니다. 이 함수는 원하는 패턴에 따라 날짜를 문자열로 변환해 주기 때문에, 저장 시점부터 일관된 형식의 데이터를 유지할 수 있습니다.

1. 예제 테이블 생성

먼저 실습에 사용할 테이블을 만들어 보겠습니다. 여기서는 배송일(ShippingDate)을 저장하기 위해 varchar 타입의 컬럼 하나를 가진 간단한 테이블을 생성합니다.

mysql> create table DemoTable2012
    -> (
    -> ShippingDate varchar(20)
    -> );
Query OK, 0 rows affected (0.48 sec)

2. INSERT 문에서 DATE_FORMAT()으로 날짜 형식 지정

이제 insert 명령을 사용하여 테이블에 레코드를 삽입해 보겠습니다. 아래 예시처럼 %d.%m.%Y 형식을 지정하면 '일.월.연도' 순서로 날짜가 저장됩니다.

mysql> insert into DemoTable2012 values(date_format(curdate(),'%d.%m.%Y'));
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable2012 values(date_format(now(),'%d.%m.%Y'));
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable2012 values(date_format('2014-01-21','%d.%m.%Y'));
Query OK, 1 row affected (0.17 sec)

위 세 개의 INSERT 문은 각각 다음과 같은 방식으로 동작합니다.

  • curdate(): 현재 날짜를 반환하여 지정한 형식으로 변환
  • now(): 현재 날짜와 시간을 반환하며, 날짜 부분만 지정한 형식으로 변환
  • 특정 날짜 문자열: '2014-01-21'처럼 직접 입력한 날짜를 원하는 형식으로 변환

3. 결과 확인

select 문을 실행하여 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable2012;

실행 결과는 다음과 같습니다.

+--------------+
| ShippingDate |
+--------------+
| 21.12.2019  |
| 21.12.2019  |
| 21.01.2014  |
+--------------+
3 rows in set (0.00 sec)

자주 사용되는 DATE_FORMAT() 형식 지정자

DATE_FORMAT() 함수와 함께 쓸 수 있는 대표적인 형식 지정자는 다음과 같습니다.

지정자설명예시
%Y4자리 연도2024
%y2자리 연도24
%m2자리 월01~12
%d2자리 일01~31
%H24시간제 시00~23
%i00~59
%s00~59

이처럼 DATE_FORMAT() 함수를 INSERT 문과 함께 사용하면, 데이터베이스에 저장되는 순간부터 원하는 날짜 형식을 손쉽게 적용할 수 있습니다.