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

MySQL에서 특정 날짜 이후의 레코드 조회하는 방법

MySQL에서는 WHERE 절과 비교 연산자를 활용하여 특정 날짜 이후의 레코드를 손쉽게 조회할 수 있습니다. 이번 글에서는 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable708 (
    CustomerName varchar(100),
    ShippingDate date
);
Query OK, 0 rows affected (0.51 sec)

고객 이름(CustomerName)과 배송 날짜(ShippingDate) 두 개의 컬럼으로 구성된 테이블입니다.

2. 샘플 데이터 삽입하기

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable708 values('John','2019-01-21');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable708 values('Chris','2019-03-24');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable708 values('Robert','2019-04-26');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable708 values('David','2019-07-22');
Query OK, 1 row affected (0.17 sec)

3. 전체 레코드 확인하기

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

mysql> select *from DemoTable708;

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

+--------------+--------------+
| CustomerName | ShippingDate |
+--------------+--------------+
| John         | 2019-01-21   |
| Chris        | 2019-03-24   |
| Robert       | 2019-04-26   |
| David        | 2019-07-22   |
+--------------+--------------+
4 rows in set (0.00 sec)

4. 특정 날짜 이후의 레코드 조회하기

특정 날짜 이후의 레코드만 조회하려면 WHERE 절에 >= 연산자를 사용하면 됩니다. 아래 쿼리는 2019년 4월 1일 이후의 배송 레코드를 가져옵니다.

mysql> select *from DemoTable708 where ShippingDate >='2019-04-01';

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

+--------------+--------------+
| CustomerName | ShippingDate |
+--------------+--------------+
| Robert       | 2019-04-26   |
| David        | 2019-07-22   |
+--------------+--------------+
2 rows in set (0.00 sec)

2019-04-01 이전 날짜인 John과 Chris의 레코드는 제외되고, 조건에 맞는 2개의 레코드만 반환되는 것을 확인할 수 있습니다.

참고 사항

  • >= 대신 >를 사용하면 해당 날짜 당일의 레코드는 제외됩니다.
  • 날짜 값은 반드시 'YYYY-MM-DD' 형식의 문자열로 지정해야 올바르게 비교됩니다.
  • 대량의 데이터를 다룰 경우 ShippingDate 컬럼에 인덱스를 생성하면 조회 성능이 크게 향상됩니다.