MySQL DATE_FORMAT()으로 시간과 분만 출력하기
MySQL에서 날짜·시간(datetime) 데이터 중 시간(Hour)과 분(Minutes)만 표시하고 싶다면 DATE_FORMAT() 함수를 사용하면 됩니다. 형식 지정자(format specifier)를 활용해 원하는 형태로 손쉽게 출력할 수 있습니다.
기본 문법은 다음과 같습니다.
SELECT DATE_FORMAT(컬럼명, '%H:%i') AS 별칭 FROM 테이블명;
여기서 %H는 24시간 형식의 '시'를, %i는 '분'을 의미합니다.
1. 테스트용 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> CREATE TABLE DemoTable1527
-> (
-> ArrivalDatetime datetime
-> );
Query OK, 0 rows affected (0.76 sec)2. 샘플 데이터 삽입
INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.
mysql> INSERT INTO DemoTable1527 VALUES('2019-01-10 12:34:45');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable1527 VALUES('2018-12-12 11:00:34');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable1527 VALUES('2019-03-21 04:55:56');
Query OK, 1 row affected (0.18 sec)3. 전체 레코드 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM DemoTable1527;
실행 결과는 다음과 같습니다.
+---------------------+ | ArrivalDatetime | +---------------------+ | 2019-01-10 12:34:45 | | 2018-12-12 11:00:34 | | 2019-03-21 04:55:56 | +---------------------+ 3 rows in set (0.00 sec)
4. 시간과 분만 표시하는 쿼리
이제 DATE_FORMAT() 함수를 사용해 시간과 분만 출력하는 쿼리는 다음과 같습니다.
mysql> SELECT DATE_FORMAT(ArrivalDatetime,'%H:%i') AS HourAndMinutes FROM DemoTable1527;
실행 결과, 날짜 정보는 제외되고 시간과 분만 깔끔하게 표시됩니다.
+----------------+ | HourAndMinutes | +----------------+ | 12:34 | | 11:00 | | 04:55 | +----------------+ 3 rows in set (0.00 sec)
참고: 자주 사용하는 DATE_FORMAT 형식 지정자
%H: 24시간 형식의 시간 (00~23)%h: 12시간 형식의 시간 (01~12)%i: 분 (00~59)%s: 초 (00~59)%T: 24시간 형식의 전체 시간 (hh:mm:ss)
이처럼 DATE_FORMAT() 함수와 형식 지정자를 조합하면 MySQL에서 원하는 시간 형식을 자유롭게 가공하여 표시할 수 있습니다.