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

MySQL에서 오늘과 내일 날짜에 해당하는 레코드만 조회하는 방법

MySQL에서 오늘과 내일 날짜의 레코드 조회하기

날짜 데이터가 저장된 열에서 오늘과 내일에 해당하는 레코드만 조회하고 싶은 경우가 종종 있습니다. 이럴 때 MySQL의 CURDATE() 함수와 INTERVAL 키워드를 활용하면 아주 간단하게 해결할 수 있습니다. 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성

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

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

2. 레코드 삽입

INSERT 명령을 사용해 여러 개의 날짜 레코드를 삽입합니다.

mysql> insert into DemoTable values('2019-08-24');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('2019-08-25');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('2019-08-20');
Query OK, 1 row affected (0.24 sec)

3. 전체 레코드 확인

SELECT 문으로 테이블에 저장된 모든 레코드를 확인해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+---------------+
| AdmissionDate |
+---------------+
| 2019-08-24    |
| 2019-08-25    |
| 2019-08-20    |
+---------------+
3 rows in set (0.00 sec)

4. 오늘과 내일 날짜의 레코드만 조회

오늘과 내일 날짜에 해당하는 레코드만 표시하는 쿼리는 다음과 같습니다.

mysql> select *from DemoTable where AdmissionDate IN(curdate(),curdate() + interval 1 day);

실행 결과:

+---------------+
| AdmissionDate |
+---------------+
| 2019-08-24    |
| 2019-08-25    |
+---------------+
2 rows in set (0.00 sec)

쿼리 동작 원리

CURDATE()는 현재 날짜(오늘)를 반환하며, curdate() + interval 1 day는 오늘 날짜에 하루를 더한 값, 즉 내일 날짜를 반환합니다. WHERE 절에서 IN 연산자를 사용하면 이 두 날짜 중 하나와 일치하는 레코드만 필터링되어 결과로 출력됩니다. 위 예제에서는 2019-08-24(오늘)와 2019-08-25(내일) 두 건만 조회된 것을 확인할 수 있습니다.