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

MySQL STR_TO_DATE 함수로 문자열을 전체 날짜 및 시간으로 변환하는 방법

MySQL에서 문자열 형태로 저장된 날짜 데이터를 실제 날짜·시간(DATETIME) 값으로 변환하려면 STR_TO_DATE() 함수를 사용할 수 있습니다. 이 함수는 첫 번째 인자로 변환할 문자열을, 두 번째 인자로 해당 문자열의 형식을 나타내는 포맷 문자열을 받습니다.

아래 예제를 통해 문자열과 형식을 기반으로 전체 날짜 및 시간을 반환하는 과정을 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 날짜 정보를 문자열(VARCHAR)로 저장할 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> AdmissionDate varchar(100)
-> );
Query OK, 0 rows affected (0.66 sec)

2단계: 데이터 삽입

INSERT 명령을 사용하여 테이블에 샘플 레코드를 추가합니다.

mysql> insert into DemoTable values('Wed, 19 Jun 2019 04:10:20');
Query OK, 1 row affected (0.22 sec)

3단계: 저장된 데이터 확인

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

출력 결과

+---------------------------+
| AdmissionDate |
+---------------------------+
| Wed, 19 Jun 2019 04:10:20 |
+---------------------------+
1 row in set (0.00 sec)

4단계: STR_TO_DATE로 날짜 및 시간 변환

다음 쿼리는 문자열과 지정된 형식을 기반으로 날짜와 시간을 반환합니다.

mysql> SELECT STR_TO_DATE(AdmissionDate, '%a, %d %b %Y %H:%i:%s EDT') from DemoTable;

출력 결과

+---------------------------------------------------------+
| STR_TO_DATE(AdmissionDate, '%a, %d %b %Y %H:%i:%s EDT') |
+---------------------------------------------------------+
| 2019-06-19 04:10:20 |
+---------------------------------------------------------+
1 row in set (0.00 sec)

포맷 지정자 설명

위 쿼리에서 사용된 주요 포맷 지정자는 다음과 같습니다.

  • %a — 축약된 요일 이름 (예: Wed)
  • %d — 두 자리 숫자의 일(日) (예: 19)
  • %b — 축약된 월 이름 (예: Jun)
  • %Y — 네 자리 연도 (예: 2019)
  • %H — 24시간 형식의 시간 (예: 04)
  • %i — 분 (예: 10)
  • %s — 초 (예: 20)

이처럼 STR_TO_DATE() 함수를 활용하면 'Wed, 19 Jun 2019 04:10:20'과 같은 텍스트 형식의 날짜 문자열을 '2019-06-19 04:10:20' 형태의 표준 DATETIME 값으로 손쉽게 변환할 수 있습니다. 변환된 값은 DATE_ADD, DATEDIFF 등 다양한 날짜 함수와 함께 활용할 수 있어 데이터 정제 작업에 매우 유용합니다.