본문 바로가기
DataBase/MySQL

MySQL 날짜(DATE) 조건 검색 사용법

by 코딩이라구 2022. 12. 21.

MySQL SELECT 문 사용 시 날짜(DATE) 조건을 사용하여 데이터를 검색할 수 있습니다. WHERE 조건문에서 특정 날짜와 일치하거

나, BETWEEN 명령어를 사용하여 특정 날짜 이전 또는 이후 범위를 지정하여 레코드를 조회하실 수 있습니다.

 

MySQL 기간별 통계(일, 주, 월)

 


먼저 데이터베이스에서 sample 테이블의 데이터 기준을 지정하겠습니다.

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 1   | 2021-10-07  |
| 2   | 2021-12-31  |
| 3   | 2022-03-01  |
| 4   | 2022-06-25  |
| 5   | 2022-08-15  |
| 6   | 2022-10-03  |
| 7   | 2022-11-11  |
| 8   | 2023-01-01  |
+-----+-------------+

MySQL 날짜 조건 검색(조회) 방법

 

1. 특정 날짜 조회

특정 날짜와 일치하는 조건의 데이터를 조회할 수 있습니다.

-- 2022년 8월 15일에 입력된 데이터를 조회
SELECT *
  FROM sample
 WHERE registTime = '2022-08-15';
 

결과

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 5   | 2022-08-15  |
+-----+-------------+

2. 특정 날짜 이전 또는 이후 조회

지정한 날짜보다 과거 또는 미래의 데이터를 조회할 수 있습니다. 이때 비교 연산자(관계 연산자)를 사용하여 전, 후 일자를 선택할 수 있습니다.

  • 날짜는 직접 입력 또는 MySQL 제공 함수를 통해 지정할 수 있습니다.

 

⊙ 과거 일자 데이터 조회

-- 2022년 8월 15일 이전 데이터 조회
-- 직접 입력
SELECT *
  FROM sample
 WHERE registTime < '2022-08-15';
 
-- DATA_ADD() 더하기 함수 사용 (현재 날짜 2022년 10월 14일 기준)
SELECT *
  FROM sample
 WHERE registTime < DATE_ADD(NOW(), INTERVAL -60 DAY);
 

결과

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 1   | 2021-10-07  |
| 2   | 2021-12-31  |
| 3   | 2022-03-01  |
| 4   | 2022-06-25  |
+-----+-------------+

⊙ 미래 일자 데이터 조회

-- 2022년 8월 15일 이후 데이터 조회
-- 직접 입력
SELECT *
  FROM sample
 WHERE registTime > '2022-08-15';
 
-- DATE_SUB() 빼기 함수 사용
SELECT *
  FROM sample
 WHERE registTime > DATE_SUB(NOW(), INTERVAL 60 DAY);


결과

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 6   | 2022-10-03  |
| 7   | 2022-11-11  |
| 8   | 2023-01-01  |
+-----+-------------+

 

MySQL 날짜, 시간 타입 정리

 


3. 특정 기간 범위 조회

조건문에서 BETWEEN 명령어를 사용하여 날짜 범위를 지정하여 데이터를 검색할 수 있습니다. 특정 기간 범위를 포함 또는 제외하실 수 있습니다.

⊙ 특정 기간을 포함한 데이터 조회

-- 2022년 1월 1일부터 2022년 12월 31일까지 기간 범위를 표함하는 조회
SELECT *
  FROM sample
 WHERE registTime BETWEEN '2022-01-01'
                      AND '2022-12-31';
 

결과

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 3   | 2022-03-01  |
| 4   | 2022-06-25  |
| 5   | 2022-08-15  |
| 6   | 2022-10-03  |
| 7   | 2022-11-11  |
+-----+-------------+

⊙ 특정 기간을 제외한 데이터 조회

-- 2022년 1월 1일부터 2022년 12월 31일까지 기간 범위를 제외하고 조회
SELECT *
  FROM sample
 WHERE registTime NOT BETWEEN '2022-01-01'
                          AND '2022-12-31';

 

결과

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 1   | 2021-10-07  |
| 2   | 2021-12-31  |
| 8   | 2023-01-01  |
+-----+-------------+

 

이상으로 MySQL에서 날짜(DATE) 조건으로 데이터를 조회하는 방법에 대하여 알아보았습니다.

 

MySQL 테이블 초기화(TRUNCATE)

 

댓글