Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 현재 날짜와 3개월 전 사이의 날짜 데이터 조회하기

MySQL에서 현재 날짜(CURDATE())부터 3개월 전까지의 기간에 해당하는 데이터를 조회하려면 BETWEEN 연산자와 INTERVAL 키워드를 함께 사용하면 됩니다. 이 방법은 최근 3개월 이내에 등록된 기록만 필터링할 때 특히 유용합니다.

테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> AdmissionDate date
    -> );
Query OK, 0 rows affected (0.84 sec)

데이터 삽입하기

insert 명령을 사용하여 테이블에 샘플 레코드를 추가합니다.

mysql> insert into DemoTable values('2019-09-30');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('2019-10-01');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values('2019-03-30');
Query OK, 1 row affected (0.21 sec)

mysql> insert into DemoTable values('2019-04-24');
Query OK, 1 row affected (0.17 sec)

전체 데이터 조회하기

select 문을 사용하여 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

출력 결과

+---------------+
| AdmissionDate |
+---------------+
| 2019-09-30    |
| 2019-10-01    |
| 2019-03-30    |
| 2019-04-24    |
+---------------+
4 rows in set (0.00 sec)

최근 3개월 데이터 조회 쿼리

다음은 MySQL에서 현재 날짜와 현재 날짜로부터 3개월 전 사이의 날짜를 선택하는 쿼리입니다.

mysql> select *from DemoTable WHERE AdmissionDate BETWEEN curdate() - INTERVAL 3 MONTH AND curdate();

출력 결과

+---------------+
| AdmissionDate |
+---------------+
| 2019-03-30    |
| 2019-04-24    |
+---------------+
2 rows in set (0.00 sec)

쿼리 동작 원리

CURDATE() 함수는 오늘 날짜를 반환하며, 여기서 INTERVAL 3 MONTH를 빼면 정확히 3개월 전 날짜가 계산됩니다. BETWEEN은 시작일과 종료일을 모두 포함하는 범위 조건을 지정하므로, 위 쿼리는 입학일(AdmissionDate)이 최근 3개월 이내인 레코드만 반환합니다. 실행 결과에서 확인할 수 있듯이 2019년 9월과 10월의 데이터는 범위에서 제외되고, 3개월 구간에 속하는 3월 30일과 4월 24일 데이터만 조회됩니다.