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

MySQL에서 TIMESTAMP 값에서 날짜만 추출하는 방법

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'처럼 활용할 수도 있습니다.