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

MySQL BETWEEN 연산자로 두 날짜 사이의 데이터 조회하기

MySQL에서 두 날짜 범위 사이의 데이터 조회 방법

MySQL에서 특정 두 날짜 사이에 속한 모든 데이터를 조회하려면 BETWEEN 연산자를 사용하면 됩니다. 기본 문법은 다음과 같습니다.

select * from yourTableName where yourColumnName between yourDateValue1 and yourDateValue2;

BETWEEN 연산자는 시작 날짜와 종료 날짜를 모두 포함하여 범위 내의 레코드를 반환합니다. 실제 예제를 통해 살펴보겠습니다.

1. 테이블 생성하기

먼저 직원 정보를 저장할 테이블을 생성합니다.

mysql> create table DemoTable1422
    -> (
    -> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EmployeeName varchar(20),
    -> EmployeeJoiningDate date
    -> );
Query OK, 0 rows affected (0.69 sec)

위 테이블은 직원 ID, 이름, 입사일 세 개의 컬럼으로 구성되어 있습니다.

2. 샘플 데이터 삽입하기

INSERT 문을 사용해 테이블에 여러 레코드를 추가합니다.

mysql> insert into DemoTable1422(EmployeeName,EmployeeJoiningDate) values('John','2017-09-28');
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable1422(EmployeeName,EmployeeJoiningDate) values('Chris','2019-09-29');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1422(EmployeeName,EmployeeJoiningDate) values('Bob','2018-01-31');
Query OK, 1 row affected (0.55 sec)
mysql> insert into DemoTable1422(EmployeeName,EmployeeJoiningDate) values('Sam','2018-12-21');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1422(EmployeeName,EmployeeJoiningDate) values('Mike','2019-11-10');
Query OK, 1 row affected (0.11 sec)

3. 전체 데이터 확인하기

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

mysql> select * from DemoTable1422;

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

+------------+--------------+---------------------+
| EmployeeId | EmployeeName | EmployeeJoiningDate |
+------------+--------------+---------------------+
|          1 | John         |           2017-09-28|
|          2 | Chris        |           2019-09-29|
|          3 | Bob          |           2018-01-31|
|          4 | Sam          |           2018-12-21|
|          5 | Mike         |           2019-11-10|
+------------+--------------+---------------------+
5 rows in set (0.00 sec)

4. BETWEEN으로 날짜 범위 조회하기

이제 두 날짜 사이의 데이터만 선택하는 쿼리를 실행합니다. 아래 예제는 2018년 9월 29일부터 2019년 9월 29일 사이에 입사한 직원을 조회합니다.

mysql> select * from DemoTable1422 where EmployeeJoiningDate between '2018-09-29' and '2019-09-29';

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

+------------+--------------+---------------------+
| EmployeeId | EmployeeName | EmployeeJoiningDate |
+------------+--------------+---------------------+
|          2 | Chris        |          2019-09-29 |
|          4 | Sam          |           2018-12-21|
+------------+--------------+---------------------+
2 rows in set (0.00 sec)

결과를 보면 지정한 범위 내에 있는 Chris(2019-09-29)와 Sam(2018-12-21) 두 명의 직원만 조회된 것을 확인할 수 있습니다. 참고로 BETWEEN 연산자는 양 끝 날짜 값을 포함(inclusive)하므로, 정확히 시작일이나 종료일에 해당하는 레코드도 결과에 함께 반환됩니다.