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

2일 이내에 만료되는 날짜(레코드)를 조회하는 MySQL 쿼리 작성법

2일 이내 만료 날짜 조회 쿼리 개요

MySQL에서 오늘부터 2일 이내에 만료되는 날짜 데이터를 조회하려면 BETWEEN 키워드와 CURDATE() 함수를 함께 사용하면 됩니다. 이번 글에서는 예제 테이블을 만들고, 실제 쿼리를 통해 만료일이 2일 이내인 레코드를 찾는 방법을 단계별로 살펴보겠습니다.

1. 예제 테이블 생성

먼저 만료 날짜를 저장할 테이블을 생성합니다.

mysql> create table DemoTable
(
   ExpiryDate date
);
Query OK, 0 rows affected (0.55 sec)

참고: 이 예제에서는 현재 날짜가 2019-08-18이라고 가정합니다.

2. 테스트 데이터 입력

INSERT 명령을 사용해 테이블에 여러 개의 레코드를 삽입합니다.

mysql> insert into DemoTable values('2018-01-21');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('2019-08-20');
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable values('2018-08-20');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable values('2019-08-21');
Query OK, 1 row affected (0.14 sec)

3. 전체 레코드 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 봅니다.

mysql> select *from DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+------------+
| ExpiryDate |
+------------+
| 2018-01-21 |
| 2019-08-20 |
| 2018-08-20 |
| 2019-08-21 |
+------------+
4 rows in set (0.00 sec)

4. 2일 이내 만료 날짜 조회 쿼리

이제 핵심인 만료일이 오늘부터 2일 이내인 레코드를 찾는 쿼리입니다. BETWEEN을 사용해 현재 날짜(CURDATE())부터 현재 날짜 + 2일 사이의 데이터를 필터링합니다.

mysql> select *from DemoTable where ExpiryDate between curdate() AND curdate() + 2;

5. 실행 결과

현재 날짜가 2019-08-18이므로, 2019-08-18부터 2019-08-20 사이의 날짜만 조회됩니다.

+------------+
| ExpiryDate |
+------------+
| 2019-08-20 |
+------------+
1 row in set (0.00 sec)

정리

BETWEEN CURDATE() AND CURDATE() + 2 조건을 활용하면 오늘부터 이틀 후까지 만료되는 레코드를 손쉽게 조회할 수 있습니다. 참고로 MySQL에서는 날짜 타입에 숫자를 더하면 일 단위로 계산되지만, 가독성과 안정성을 높이고 싶다면 DATE_ADD(CURDATE(), INTERVAL 2 DAY) 구문을 사용하는 것도 좋은 방법입니다.