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

MySQL에서 15일 이전의 레코드를 조회하는 방법

MySQL에서 특정 날짜 기준으로 15일 이전의 레코드를 조회하려면 INTERVAL 개념과 DATE_SUB() 함수를 활용하면 됩니다. DATE_SUB()는 지정한 날짜에서 일정 기간을 빼는 함수로, INTERVAL과 함께 사용하면 원하는 시점 이전의 데이터를 손쉽게 필터링할 수 있습니다.

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1845
    (
    ArrivalDate date
    );
Query OK, 0 rows affected (0.00 sec)

테이블에 샘플 데이터 삽입하기

insert 명령을 사용해 테이블에 여러 날짜 데이터를 입력합니다.

mysql> insert into DemoTable1845 values('2019-12-02');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1845 values('2019-11-18');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1845 values('2019-12-18');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1845 values('2019-12-25');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1845 values('2019-11-15');
Query OK, 1 row affected (0.00 sec)

저장된 전체 레코드 확인하기

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

mysql> select * from DemoTable1845;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+-------------+
| ArrivalDate |
+-------------+
| 2019-12-02  |
| 2019-11-18  |
| 2019-12-18  |
| 2019-12-25  |
| 2019-11-15  |
+-------------+
5 rows in set (0.00 sec)

현재 날짜 확인하기

NOW() 함수를 사용하면 현재 시스템 날짜와 시간을 확인할 수 있습니다.

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2019-12-02 20:47:05 |
+---------------------+
1 row in set (0.00 sec)

15일 이전 레코드 조회 쿼리

다음은 오늘 날짜를 기준으로 15일 이전의 레코드만 가져오는 쿼리입니다. WHERE 절에서 ArrivalDate 컬럼을 DATE_SUB(NOW(), INTERVAL 15 DAY) 결과와 비교합니다.

mysql> select * from DemoTable1845
    where ArrivalDate < DATE_SUB(NOW(), INTERVAL 15 DAY);

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

+-------------+
| ArrivalDate |
+-------------+
| 2019-11-15  |
+-------------+
1 row in set (0.00 sec)

결과를 보면 현재 날짜(2019-12-02)에서 15일을 뺀 2019-11-17보다 이전인 '2019-11-15' 레코드 하나만 정상적으로 조회된 것을 확인할 수 있습니다. 참고로 정확히 15일 전 날짜까지 포함하고 싶다면 비교 연산자를 <=로 변경하면 됩니다.