MySQL에서 TIMESTAMP 타입의 컬럼에 저장된 값에서 날짜 부분만 추출하고 싶을 때가 있습니다. 이때 내장 함수인 DATE()를 사용하면 간단하게 해결할 수 있습니다. 이번 글에서는 예제를 통해 타임스탬프에서 날짜를 선택하는 방법을 단계별로 알아보겠습니다.
1. 테이블 생성하기
먼저 타임스탬프 타입의 컬럼을 포함하는 테이블을 생성합니다.
mysql> create table DemoTable
-> (
-> CustomerName varchar(100),
-> CustomerShippingDate timestamp
-> );
Query OK, 0 rows affected (0.52 sec)위 쿼리는 고객 이름(CustomerName)과 배송 날짜(CustomerShippingDate) 두 개의 컬럼을 가진 테이블을 만듭니다.
2. 데이터 삽입하기
INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable values('Chris','2019-01-21');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('David','2019-03-01');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('Robert','2019-06-04');
Query OK, 1 row affected (0.25 sec)3. 저장된 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
출력 결과
+--------------+----------------------+ | CustomerName | CustomerShippingDate | +--------------+----------------------+ | Chris | 2019-01-21 00:00:00 | | David | 2019-03-01 00:00:00 | | Robert | 2019-06-04 00:00:00 | +--------------+----------------------+ 3 rows in set (0.00 sec)
출력 결과를 보면 날짜 뒤에 시간 정보(00:00:00)까지 함께 저장되어 있는 것을 확인할 수 있습니다.
4. DATE() 함수로 날짜만 추출하기
타임스탬프 값에서 날짜 부분만 선택하려면 다음과 같이 DATE() 함수를 사용합니다.
mysql> select *,date(CustomerShippingDate) from DemoTable;
출력 결과
+--------------+----------------------+----------------------------+ | CustomerName | CustomerShippingDate | date(CustomerShippingDate) | +--------------+----------------------+----------------------------+ | Chris | 2019-01-21 00:00:00 | 2019-01-21 | | David | 2019-03-01 00:00:00 | 2019-03-01 | | Robert | 2019-06-04 00:00:00 | 2019-06-04 | +--------------+----------------------+----------------------------+ 3 rows in set (0.00 sec)
DATE() 함수를 적용한 컬럼에서는 시간 정보가 제거되고 'YYYY-MM-DD' 형식의 순수한 날짜 값만 반환되는 것을 볼 수 있습니다.
추가 팁: 별칭(Alias) 활용하기
결과 컬럼명을 더 읽기 쉽게 만들고 싶다면 AS 키워드로 별칭을 지정할 수 있습니다.
mysql> select CustomerName,
-> date(CustomerShippingDate) AS ShippingDateOnly
-> from DemoTable;이렇게 하면 출력 결과의 컬럼 헤더가 date(CustomerShippingDate) 대신 ShippingDateOnly로 표시되어 가독성이 크게 향상됩니다.
정리
MySQL에서 타임스탬프 값에서 날짜만 추출하는 방법은 매우 간단합니다. 핵심은 DATE() 함수 하나입니다.
- DATE(timestamp_column): 타임스탬프에서 날짜('YYYY-MM-DD')만 반환
- 날짜 기준으로 그룹화하거나 조건을 걸 때 유용하게 활용 가능
예를 들어 특정 날짜의 데이터만 조회하려면 WHERE DATE(CustomerShippingDate) = '2019-03-01'처럼 활용할 수도 있습니다.