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

MySQL DATETIME에서 날짜와 시간 분리하기 – DATE_FORMAT() 함수 활용법

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 형식을 적용하면 시간만 깔끔하게 분리할 수 있습니다. 이 방법은 리포트 작성, 로그 분석, 통계 집계 등 날짜와 시간을 따로 처리해야 하는 다양한 상황에서 유용하게 활용됩니다.