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) 조건으로 데이터를 조회하는 방법에 대하여 알아보았습니다.
'DataBase > MySQL' 카테고리의 다른 글
MySQL TRUNCATE 명령어 (테이블 초기화) (0) | 2022.12.21 |
---|---|
MySQL DELETE 문 정리 (테이블 데이터 삭제) (0) | 2022.12.21 |
MySQL 일별, 주별, 월별, 특정 기간별 통계 조회 (1) | 2022.12.19 |
MySQL 페이징 처리 - LIMIT, OFFSET 사용 방법 (0) | 2022.12.14 |
MySQL 날짜, 시간 타입 (DATE, DATETIME, TIME, TIMESTAMP) (0) | 2022.10.24 |
댓글