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

MySQL에서 타임스탬프 값에서 날짜만 추출하는 방법

MySQL에서 타임스탬프(timestamp) 값에서 날짜 부분만 추출하고 싶다면 DATE() 함수를 사용하면 됩니다. DATE() 함수는 타임스탬프 또는 DATETIME 값에서 시간 정보를 제거하고 날짜(YYYY-MM-DD 형식)만 반환합니다.

기본 문법

SELECT DATE(yourTimestampColumnName) as anyVariableName from yourTableName;

위 문법을 실제로 이해하기 위해 먼저 예제 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table DateFromTimestamp
-> (
-> ShippingDateTime timestamp
-> );
Query OK, 0 rows affected (0.60 sec)

이제 위에서 생성한 ShippingDateTime 컬럼에 날짜와 시간 데이터를 삽입합니다. 레코드 삽입 쿼리는 다음과 같습니다.

mysql> insert into DateFromTimestamp values('2012-12-26 13:24:35');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DateFromTimestamp values('2013-11-26 14:36:40');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DateFromTimestamp values('2016-07-22 15:20:10');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DateFromTimestamp values('2017-11-04 04:25:30');
Query OK, 1 row affected (0.15 sec)

SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from DateFromTimestamp;

출력 결과

+---------------------+
| ShippingDateTime    |
+---------------------+
| 2012-12-26 13:24:35 |
| 2013-11-26 14:36:40 |
| 2016-07-22 15:20:10 |
| 2017-11-04 04:25:30 |
+---------------------+
4 rows in set (0.00 sec)

이제 DATE() 함수를 사용하여 타임스탬프에서 날짜 부분만 표시하는 쿼리입니다.

mysql> select date(ShippingDateTime) as OnlyDatePartFromTimestamp from
DateFromTimestamp;

출력 결과

+---------------------------+
| OnlyDatePartFromTimestamp |
+---------------------------+
| 2012-12-26                |
| 2013-11-26                |
| 2016-07-22                |
| 2017-11-04                |
+---------------------------+
4 rows in set (0.00 sec)

실행 결과를 보면 시간 정보가 모두 제거되고 날짜(YYYY-MM-DD)만 깔끔하게 추출된 것을 확인할 수 있습니다. 이처럼 DATE() 함수 하나만으로도 타임스탬프 컬럼에서 손쉽게 날짜 데이터를 얻을 수 있으며, 별칭(alias)을 지정하면 결과 컬럼명도 원하는 대로 표시할 수 있습니다.