MySQL에서 DATETIME 값의 시간 구성 요소 제거하기
MySQL에서 DATETIME 타입 컬럼에 저장된 날짜와 시간 중 날짜만 필요한 경우, 내장 함수인 DATE()를 사용하면 시간 구성 요소를 손쉽게 제거할 수 있습니다.
기본 문법
DATE() 함수는 DATETIME 값에서 시간 부분을 잘라내고 날짜만 반환합니다. 기본 사용 문법은 다음과 같습니다.
SELECT DATE(yourColumnName) FROM yourTableName;
실습 예제
개념을 이해하기 위해 먼저 테스트용 테이블을 생성해 보겠습니다.
mysql> CREATE TABLE StripComponentDatetimeDemo -> ( -> YourDateTime datetime -> ); Query OK, 0 rows affected (0.60 sec)
다음으로 테이블에 샘플 데이터를 삽입합니다. 아래 쿼리는 현재 시간에 하루를 더한 값을 저장합니다.
mysql> INSERT INTO StripComponentDatetimeDemo VALUES(DATE_ADD(NOW(), INTERVAL 1 DAY)); Query OK, 1 row affected (0.13 sec)
저장된 데이터 확인
SELECT 문을 사용하여 삽입된 DATETIME 값을 조회해 보겠습니다.
mysql> SELECT * FROM StripComponentDatetimeDemo;
실행 결과는 다음과 같습니다.
+---------------------+ | YourDateTime | +---------------------+ | 2018-11-25 20:15:07 | +---------------------+ 1 row in set (0.00 sec)
DATE() 함수로 시간 제거하기
이제 DATE() 함수를 적용하여 시간 구성 요소를 제거한 쿼리는 다음과 같습니다.
mysql> SELECT DATE(YourDateTime) FROM StripComponentDatetimeDemo;
실행 결과를 확인해 보면 시간 정보가 제거되고 날짜만 출력되는 것을 볼 수 있습니다.
+--------------------+ | DATE(YourDateTime) | +--------------------+ | 2018-11-25 | +--------------------+ 1 row in set (0.00 sec)
정리
이처럼 MySQL에서는 DATE() 함수 하나만으로 DATETIME 값에서 시간 부분을 간단히 제거할 수 있습니다. 참고로 동일한 결과를 얻기 위해 CAST(yourColumnName AS DATE) 또는 DATE_FORMAT(yourColumnName, '%Y-%m-%d') 함수를 활용하는 방법도 있으니 상황에 맞게 선택하여 사용하시면 됩니다.