MySQL에서 DATETIME 값을 날짜와 시간으로 분리하는 방법
MySQL에서 DATETIME 타입으로 저장된 값에서 날짜(DATE) 부분과 시간(TIME) 부분을 각각 추출하고 싶다면, DATE_FORMAT() 함수를 사용하면 됩니다. 이 함수는 지정한 형식 문자열에 따라 날짜·시간 값을 원하는 형태로 변환해 주는 강력한 도구입니다.
기본 문법
SELECT DATE_FORMAT(yourColumnName, '%Y-%m-%d') VariableName,
DATE_FORMAT(yourColumnName, '%H:%i:%s') VariableName
FROM yourTableName;
여기서 사용된 형식 지정자는 다음과 같습니다.
%Y: 연도(4자리)%m: 월(2자리)%d: 일(2자리)%H: 시(24시간제)%i: 분%s: 초
실습 예제로 배우는 DATE_FORMAT()
이제 실제로 DATE_FORMAT() 함수가 어떻게 동작하는지 확인해 보겠습니다. 먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.
1단계: 테이블 생성
mysql> create table DateAndTimePartDemo
-> (
-> YourDateandtime datetime
-> );
Query OK, 0 rows affected (0.56 sec)
2단계: 현재 날짜와 시간 데이터 삽입
다음으로 now() 함수를 사용하여 현재 날짜와 시간을 테이블에 삽입합니다.
mysql> insert into DateAndTimePartDemo values(now());
Query OK, 1 row affected (0.37 sec)
3단계: 저장된 데이터 조회
SELECT 문으로 레코드를 조회해 보겠습니다.
mysql> select *from DateAndTimePartDemo;
실행 결과는 아래와 같이 현재 날짜와 시간이 함께 출력됩니다.
+---------------------+
| YourDateandtime |
+---------------------+
| 2018-11-24 13:40:36 |
+---------------------+
1 row in set (0.00 sec)
DATETIME에서 날짜와 시간 분리하기
이제 위에서 저장한 datetime 값을 DATE_FORMAT() 함수를 활용해 날짜와 시간으로 나누어 보겠습니다.
쿼리 작성
mysql> SELECT DATE_FORMAT(YourDateandtime, '%Y-%m-%d') OnlyYourDate,
-> DATE_FORMAT(YourDateandtime, '%H:%i:%s') OnlyYourTime
-> from DateAndTimePartDemo;
실행 결과
+--------------+--------------+
| OnlyYourDate | OnlyYourTime |
+--------------+--------------+
| 2018-11-24 | 13:40:36 |
+--------------+--------------+
1 row in set (0.03 sec)
정리
위 예제에서 볼 수 있듯이, 하나의 DATETIME 컬럼(YourDateandtime)에서 %Y-%m-%d 형식을 적용하면 날짜만, %H:%i:%s 형식을 적용하면 시간만 깔끔하게 분리할 수 있습니다. 이 방법은 리포트 작성, 로그 분석, 통계 집계 등 날짜와 시간을 따로 처리해야 하는 다양한 상황에서 유용하게 활용됩니다.