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

MySQL에서 VARCHAR 데이터를 날짜 형식으로 변환하는 방법 (STR_TO_DATE 활용)

MySQL에서 VARCHAR 타입으로 저장된 날짜 데이터를 실제 DATE 형식으로 변환하려면 STR_TO_DATE() 함수를 사용하면 됩니다. 이 함수는 문자열과 형식 지정자를 인자로 받아 해당 문자열을 MySQL이 인식할 수 있는 날짜 값으로 변환해 줍니다.

1. 테스트 테이블 생성

먼저 날짜 문자열을 저장할 VARCHAR 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable1989
    (
    DueDate varchar(20)
    );
Query OK, 0 rows affected (0.91 sec)

2. 샘플 데이터 삽입

INSERT 명령을 사용하여 '일/월/년' 형식의 날짜 문자열을 몇 개 입력합니다.

mysql> insert into DemoTable1989 values('31/01/2015');
Query OK, 1 row affected (0.52 sec)
mysql> insert into DemoTable1989 values('01/12/2018');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1989 values('25/10/2019');
Query OK, 1 row affected (0.11 sec)

3. 저장된 데이터 확인

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

mysql> select * from DemoTable1989;

위 쿼리는 다음과 같은 결과를 출력합니다.

+------------+
| DueDate    |
+------------+
| 31/01/2015 |
| 01/12/2018 |
| 25/10/2019 |
+------------+
3 rows in set (0.00 sec)

4. STR_TO_DATE()로 날짜 형식 변환

이제 STR_TO_DATE() 함수를 사용하여 VARCHAR 데이터를 MySQL 날짜 형식으로 변환합니다. 입력된 문자열이 '일/월/년' 순서이므로 형식 지정자로 '%d/%m/%Y'를 지정합니다.

mysql> select str_to_date(DueDate,'%d/%m/%Y') as MySQLDateFormat from DemoTable1989;

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

+-----------------+
| MySQLDateFormat |
+-----------------+
| 2015-01-31      |
| 2018-12-01      |
| 2019-10-25      |
+-----------------+
3 rows in set (0.05 sec)

주요 형식 지정자 정리

  • %d : 일(Day), 두 자리 숫자 (예: 01~31)
  • %m : 월(Month), 두 자리 숫자 (예: 01~12)
  • %Y : 연도(Year), 네 자리 숫자 (예: 2024)

참고로, 변환된 결과를 영구적으로 저장하고 싶다면 ALTER TABLE로 새로운 DATE 타입 컬럼을 추가한 뒤 UPDATE 문과 함께 STR_TO_DATE()를 사용하여 기존 데이터를 갱신하는 방법도 활용할 수 있습니다.