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

MySQL에서 DATETIME을 DATE로 변환하는 방법 완벽 가이드

MySQL에서 DATETIME을 DATE로 캐스팅하기

MySQL에서 DATETIME 타입의 값을 DATE 타입으로 변환하려면 CAST() 함수를 사용하면 됩니다. 기본 문법은 다음과 같습니다.

SELECT CAST(컬럼명 AS DATE) AS 별칭 FROM 테이블명;

문법을 더 잘 이해하기 위해 실제 예제를 통해 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 DATETIME 타입의 컬럼을 가진 테이블을 생성합니다.

mysql> CREATE TABLE ConvertDatetimeToDate
-> (
    -> YourDatetime datetime
-> );
Query OK, 0 rows affected (0.95 sec)

2단계: DATETIME 데이터 삽입

INSERT 명령어와 DATE_ADD() 함수를 활용해 다양한 날짜 데이터를 삽입합니다. 현재 시점을 기준으로 하루 후, 하루 전, 일년 후, 일년 전의 날짜를 저장하는 쿼리입니다.

mysql> INSERT INTO ConvertDatetimeToDate VALUES(DATE_ADD(NOW(), INTERVAL 1 DAY));
Query OK, 1 row affected (0.17 sec)

mysql> INSERT INTO ConvertDatetimeToDate VALUES(DATE_ADD(NOW(), INTERVAL -1 DAY));
Query OK, 1 row affected (0.15 sec)

mysql> INSERT INTO ConvertDatetimeToDate VALUES(DATE_ADD(NOW(), INTERVAL 1 YEAR));
Query OK, 1 row affected (0.10 sec)

mysql> INSERT INTO ConvertDatetimeToDate VALUES(DATE_ADD(NOW(), INTERVAL -1 YEAR));
Query OK, 1 row affected (0.16 sec)

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

삽입된 모든 레코드를 조회해 보겠습니다.

mysql> SELECT * FROM ConvertDatetimeToDate;

실행 결과는 다음과 같습니다. 시간 정보까지 함께 저장된 것을 확인할 수 있습니다.

+---------------------+
|     YourDatetime  |
+---------------------+
| 2018-11-28 16:12:50 |
| 2018-11-26 16:13:00 |
| 2019-11-27 16:13:13 |
| 2017-11-27 16:13:24 |
+---------------------+
4 rows in set (0.00 sec)

4단계: CAST() 함수로 DATE 타입 변환

이제 앞서 소개한 문법을 적용하여 DATETIME을 DATE로 캐스팅합니다.

mysql> SELECT CAST(YourDatetime AS DATE) AS OnlyDateDemo FROM ConvertDatetimeToDate;

실행 결과 시간 정보가 제거되고 날짜만 깔끔하게 출력되는 것을 확인할 수 있습니다.

+--------------+
| OnlyDateDemo |
+--------------+
| 2018-11-28  |
| 2018-11-26  |
| 2019-11-27  |
| 2017-11-27  |
+--------------+
4 rows in set (0.00 sec)

추가 팁: DATE() 함수 활용하기

CAST() 함수 외에도 MySQL에서는 DATE() 함수를 사용해 동일한 결과를 얻을 수 있습니다.

mysql> SELECT DATE(YourDatetime) AS OnlyDateDemo FROM ConvertDatetimeToDate;

두 방법 모두 결과는 같으며, 코드의 가독성이나 팀의 코딩 컨벤션에 따라 선호하는 방식을 선택하면 됩니다. 대량의 데이터를 다룰 때는 두 함수 간 성능 차이가 거의 없으므로 상황에 맞게 활용하시기 바랍니다.