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

MySQL INSERT 쿼리에서 STR_TO_DATE()로 미국식 날짜 형식을 변환하는 방법

MySQL에서 STR_TO_DATE() 함수를 사용하면 INSERT 쿼리 실행 시 미국식 날짜 형식(예: MM-DD-YYYY)을 MySQL이 인식할 수 있는 날짜·시간 형식으로 손쉽게 변환할 수 있습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ShippingDatetime varchar(200)
);
Query OK, 0 rows affected (1.04 sec)

2. STR_TO_DATE()를 활용한 데이터 삽입

INSERT 문에 STR_TO_DATE() 함수를 적용하면 문자열로 입력된 미국식 날짜가 자동으로 MySQL 형식으로 변환되어 저장됩니다. 아래 예제에서는 '%m-%d-%Y %H:%i' 포맷을 지정했습니다.

mysql> insert into DemoTable(ShippingDatetime) values(STR_TO_DATE('01-31-2012 01:23','%m-%d-%Y %H:%i'));
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(ShippingDatetime) values(STR_TO_DATE('12-01-2018 04:56','%m-%d-%Y %H:%i'));
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(ShippingDatetime) values(STR_TO_DATE('04-17-2019 10:10','%m-%d-%Y %H:%i'));
Query OK, 1 row affected (0.17 sec)

주요 포맷 지정자 의미

  • %m : 월(Month, 00~12)
  • %d : 일(Day, 00~31)
  • %Y : 연도(4자리)
  • %H : 시(Hour, 00~23)
  • %i : 분(Minute, 00~59)

3. 결과 확인하기

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

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다. 미국식 날짜가 MySQL 표준 형식(YYYY-MM-DD HH:MM:SS)으로 정상적으로 변환된 것을 확인할 수 있습니다.

+----+---------------------+
| Id | ShippingDatetime    |
+----+---------------------+
| 1  | 2012-01-31 01:23:00 |
| 2  | 2018-12-01 04:56:00 |
| 3  | 2019-04-17 10:10:00 |
+----+---------------------+
3 rows in set (0.00 sec)

정리

STR_TO_DATE() 함수는 날짜 형식이 서로 다른 외부 데이터를 MySQL에 삽입할 때 매우 유용합니다. 입력 문자열의 실제 형식에 맞게 포맷 지정자만 정확히 작성해 주면, 별도의 전처리 없이 INSERT 단계에서 즉시 변환이 가능합니다.