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

MySQL에서 점(.) 구분 문자열을 날짜로 변환하는 방법 – STR_TO_DATE() 활용법

MySQL에서 01.10.2019처럼 점(.)으로 구분된 문자열을 날짜 형식으로 변환하려면 STR_TO_DATE() 함수를 사용하면 됩니다. 이 함수는 지정한 형식에 맞춰 문자열을 DATE 타입으로 변환해 줍니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 만들어 보겠습니다.

mysql> create table DemoTable1445
-> (
-> AdmissionDate varchar(20)
-> );
Query OK, 0 rows affected (0.46 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용해 점(.)으로 구분된 날짜 문자열을 몇 개 입력합니다.

mysql> insert into DemoTable1445 values('01.10.2019');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1445 values('31.12.2018');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable1445 values('01.02.2017');
Query OK, 1 row affected (0.11 sec)

3. 입력된 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1445;

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

+---------------+
| AdmissionDate |
+---------------+
| 01.10.2019 |
| 31.12.2018 |
| 01.02.2017 |
+---------------+
3 rows in set (0.00 sec)

4. STR_TO_DATE()로 문자열을 날짜로 변환하기

아래 쿼리처럼 str_to_date() 함수에 '%.%.%' 형식 지정자를 사용하면, 점으로 구분된 문자열이 자동으로 인식되어 날짜 형식으로 변환됩니다.

mysql> update DemoTable1445 set AdmissionDate=str_to_date(AdmissionDate,'%.%.%');
Query OK, 3 rows affected (0.15 sec)
Rows matched: 3 Changed: 3 Warnings: 0

참고: %d(일), %m(월), %Y(연도) 같은 세부 형식 지정자를 사용하는 것이 더 안전합니다. 예를 들어 str_to_date(AdmissionDate,'%d.%m.%Y')처럼 작성하면 일·월·연도 순서를 명확하게 지정할 수 있습니다.

5. 변환 결과 확인하기

다시 한번 테이블을 조회해 보겠습니다.

mysql> select * from DemoTable1445;

문자열이 표준 날짜 형식(YYYY-MM-DD)으로 성공적으로 변환된 것을 확인할 수 있습니다.

+---------------+
| AdmissionDate |
+---------------+
| 2019-10-01 |
| 2018-12-31 |
| 2017-02-01 |
+---------------+
3 rows in set (0.00 sec)

이처럼 STR_TO_DATE() 함수를 활용하면 다양한 형식의 날짜 문자열을 손쉽게 MySQL의 DATE 타입으로 변환할 수 있으며, 이후 날짜 연산이나 정렬, 비교 등을 정확하게 수행할 수 있습니다.