본문 바로가기
DataBase/MySQL

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

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

MySQL SELECT 문 사용 시 날짜(DATE) 조건을 사용하여 데이터를 검색할 수 있습니다. WHERE 조건문에서 특정 날짜와 일치하거나, BETWEEN 명령어를 사용하여 특정 날짜 이전 또는 이후 범위를 지정하여 레코드를 조회하실 수 있습니다.

먼저 데이터베이스에서 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  |
+-----+-------------+

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 관련 포스팅 정보
 

MySQL 일별, 주별, 월별, 특정 기간별 통계 조회

이번에는 MySQL에서 SELECT 조회 시 많이 사용하게 되는 쿼리문으로 일별 통계, 주별 통계, 월별 통계, 특정 기간별 통계를 날짜(DATE) 형식으로 어떻게 날짜별로 출력하는지 방법에 대하여 알아보도

chragu.com

 

MySQL 날짜, 시간 타입 (DATE, DATETIME, TIME, TIMESTAMP)

MySQL 날짜 및 시간 형식으로는 DATE, DATETIME, TIME, TIMESTAMP가 있습니다. 검색하고자 하는 조건에 맞는 타입을 사용할 수 있습니다. 이번에는 MySQL의 날짜, 시간 타입에 대하여 알아보도록 하겠습니다.

chragu.com

댓글