MySQL DATETIME에서 날짜만 추출하는 방법
MySQL에서 DATETIME 타입의 값에서 시간 정보를 제외하고 날짜만 가져오려면 DATE_FORMAT() 함수와 날짜 형식 지정자를 사용하면 됩니다.
1. 주요 날짜 형식 지정자
%d : 일(day) %m : 월(month) %Y : 연도(year)
2. 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable
(
AdmissionDate datetime
);
Query OK, 0 rows affected (0.52 sec)3. 데이터 삽입
INSERT 명령어로 몇 개의 레코드를 삽입합니다.
mysql> insert into DemoTable values('2019-07-21 12:34:56');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('2016-08-18 10:00:02');
Query OK, 1 row affected (0.51 sec)
mysql> insert into DemoTable values('2018-01-03 11:02:20');
Query OK, 1 row affected (0.12 sec)4. 전체 레코드 조회
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+---------------------+ | AdmissionDate | +---------------------+ | 2019-07-21 12:34:56 | | 2016-08-18 10:00:02 | | 2018-01-03 11:02:20 | +---------------------+ 3 rows in set (0.00 sec)
5. 날짜만 추출하는 쿼리
이제 DATE_FORMAT() 함수를 사용해 날짜만 추출해 보겠습니다.
mysql> select date_format(AdmissionDate,'%d.%m.%Y') AS Date from DemoTable;
실행 결과는 다음과 같습니다.
+------------+ | Date | +------------+ | 21.07.2019 | | 18.08.2016 | | 03.01.2018 | +------------+ 3 rows in set (0.00 sec)
위 쿼리는 AdmissionDate 컬럼의 값을 '일.월.연도' 형태로 변환하여 출력합니다. 형식 지정자의 순서나 구분 기호는 자유롭게 변경할 수 있으며, 예를 들어 '%Y-%m-%d'를 사용하면 '2019-07-21'처럼 ISO 표준 형식으로 출력됩니다.
참고: DATE() 함수 활용하기
별도의 형식 변환이 필요 없고 단순히 날짜 부분만 필요하다면 DATE() 함수를 사용하는 것이 더 간단합니다.
mysql> select DATE(AdmissionDate) AS Date from DemoTable;
이 경우 'YYYY-MM-DD' 형식의 날짜가 그대로 반환되므로, 상황에 맞게 두 방법 중 적절한 것을 선택하면 됩니다.