본문 바로가기
DataBase/MySQL

MySQL SELECT DATE 사용법 – 날짜 조건 조회 예제

by 코딩이라구 2025. 5. 12.

MySQL에서 날짜 조건을 활용해 데이터를 조회하려면 SELECT DATE 구문을 정확히 알아야 합니다. 이 글에서는 SELECT DATE 기본 구조부터 WHERE 절과 함께 사용하는 방법까지 예제를 통해 쉽게 정리해 드립니다.

mysql select date 사용법과 날짜 조건 예제 정리

 

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

샘플 데이터 테이블

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 1   | 2024-11-01  |
| 2   | 2024-12-15  |
| 3   | 2025-01-10  |
| 4   | 2025-02-20  |
| 5   | 2025-03-05  |
| 6   | 2025-04-01  |
| 7   | 2025-04-25  |
| 8   | 2025-05-10  |
+-----+-------------+

MySQL SELECT 날짜 조건 조회 방법

 

1. 특정 날짜 조회

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

-- 2025년 3월 5일에 입력된 데이터를 조회
SELECT *
  FROM sample
 WHERE registTime = '2025-03-05';

결과

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 5   | 2025-03-05  |
+-----+-------------+

 

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

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

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

⊙ 과거 일자 데이터 조회

-- 직접 입력 2025년 3월 5일 이전 데이터 조회
SELECT *
  FROM sample
 WHERE registTime < '2025-03-05';
 
 -- 현재 날짜 기준 60일 전
SELECT *
  FROM sample
 WHERE registTime < DATE_ADD(NOW(), INTERVAL -60 DAY);

결과

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 1   | 2024-11-01  |
| 2   | 2024-12-15  |
| 3   | 2025-01-10  |
| 4   | 2025-02-20  |
+-----+-------------+

⊙ 미래 일자 데이터 조회

-- 직접 입력 2025년 3월 5일 이후 데이터 조회
SELECT *
  FROM sample
 WHERE registTime > '2025-03-05';
 
-- 현재 날짜 기준 60일 후
SELECT *
  FROM sample
 WHERE registTime > DATE_ADD(NOW(), INTERVAL 60 DAY);

결과

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 6   | 2025-04-01  |
| 7   | 2025-04-25  |
| 8   | 2025-05-10  |
+-----+-------------+

 

 

3. 특정 기간 범위 조회

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

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

-- 2025년 1월 1일부터 2025년 4월 30일까지 범위 조회
SELECT *
  FROM sample
 WHERE registTime BETWEEN '2025-01-01'
                      AND '2025-04-30';

결과

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 3   | 2025-01-10  |
| 4   | 2025-02-20  |
| 5   | 2025-03-05  |
| 6   | 2025-04-01  |
| 7   | 2025-04-25  |
+-----+-------------+

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

-- 2025년 1월 1일부터 2025년 4월 30일까지 제외
SELECT *
  FROM sample
 WHERE registTime NOT BETWEEN '2025-01-01'
                              AND '2025-04-30';

결과

+-----+-------------+
| id  | registTime  |
+-----+-------------+
| 1   | 2024-11-01  |
| 2   | 2024-12-15  |
| 8   | 2025-05-10  |
+-----+-------------+

 

📌 주의: DATE(registTime)은 인덱스를 무시하기 때문에, 데이터가 많을 경우 성능 저하가 발생할 수 있습니다.가능하면 WHERE registTime BETWEEN '날짜' AND '날짜' 형태가 더 좋습니다.

 

4. SELECT DATE vs DATE_FORMAT 차이점

-- SELECT DATE는 날짜만 추출
SELECT DATE(registTime) FROM sample;

-- DATE_FORMAT은 형식을 지정할 수 있음
SELECT DATE_FORMAT(registTime, '%Y-%m-%d') FROM sample;

MySQL에서 SELECT DATE 구문은 날짜 조건을 정확하게 필터링할 때 매우 유용합니다. WHERE 절, BETWEEN 구문, 비교 연산자 등을 활용하면 실무에서 다양한 상황에 유연하게 대응할 수 있습니다. 이 글이 도움이 되셨다면 아래 글도 참고해보세요:

 

MySQL DELETE 문 사용법과 예제 →

 

MySQL TRUNCATE 테이블 초기화 →

 

MySQL 날짜, 시간 타입 정리 →

 

댓글