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

MySQL SELECT 쿼리로 DD/MM/YYYY 형식 날짜를 DATE 타입으로 변환하는 방법

MySQL에서 STR_TO_DATE() 함수를 사용하면 'DD/MM/YYYY'처럼 문자열로 저장된 날짜를 실제 DATE 타입으로 손쉽게 변환할 수 있습니다. 날짜 연산이나 정렬, 비교가 필요한 경우 반드시 DATE 타입으로 변환해야 하므로 매우 유용한 함수입니다.

STR_TO_DATE() 기본 문법

SELECT STR_TO_DATE(yourColumnName, '%d/%m/%Y') AS anyVariableName FROM yourTableName;

여기서 사용된 형식 지정자의 의미는 다음과 같습니다.

  • %d : 일(01~31)
  • %m : 월(01~12)
  • %Y : 4자리 연도(예: 2018)

예제 테이블 생성

먼저 문법을 이해하기 위해 간단한 테이블을 만들어 보겠습니다.

mysql> create table DateFormatDemo
    -> (
    ->    IssueDate varchar(100)
    -> );
Query OK, 0 rows affected (0.54 sec)

문자열 형태의 날짜 데이터 입력

테이블에 'DD/MM/YYYY' 형식의 문자열 날짜를 삽입합니다.

mysql> insert into DateFormatDemo values('26/11/2018');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DateFormatDemo values('27/11/2018');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DateFormatDemo values('2/12/2018');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DateFormatDemo values('3/12/2018');
Query OK, 1 row affected (0.14 sec)

저장된 데이터 확인

입력된 모든 날짜를 조회해 보겠습니다.

mysql> select *from DateFormatDemo;

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

+------------+
| IssueDate  |
+------------+
| 26/11/2018 |
| 27/11/2018 |
| 2/12/2018  |
| 3/12/2018  |
+------------+
4 rows in set (0.00 sec)

STR_TO_DATE()로 문자열을 날짜로 변환

이제 앞서 소개한 문법을 적용해 문자열을 DATE 형식으로 변환합니다.

mysql> select STR_TO_DATE(IssueDate, '%d/%m/%Y') StringToDateFormatExample from DateFormatDemo;

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

+---------------------------+
| StringToDateFormatExample |
+---------------------------+
| 2018-11-26                |
| 2018-11-27                |
| 2018-12-02                |
| 2018-12-03                |
+---------------------------+
4 rows in set (0.00 sec)

참고: 반대로 DATE를 원하는 형식으로 출력하려면?

DATE 타입의 값을 'DD/MM/YYYY' 형식의 문자열로 표시하고 싶다면 DATE_FORMAT() 함수를 사용하면 됩니다.

SELECT DATE_FORMAT(NOW(), '%d/%m/%Y');

정리하면, STR_TO_DATE()는 문자열 → 날짜 변환에, DATE_FORMAT()은 날짜 → 문자열 변환에 사용됩니다. 두 함수를 함께 활용하면 다양한 날짜 형식 요구 사항을 손쉽게 처리할 수 있습니다.