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

MySQL에서 오늘(TODAY)부터 7일 전까지의 날짜 데이터 조회하는 방법

두 날짜 사이의 데이터를 조회하려면 DATE() 함수와 INTERVAL 구문을 활용한 조건절을 사용해야 합니다. 아래 예제는 오늘 날짜와 7일 전 사이의 데이터를 가져오는 방법을 보여줍니다.

select *from yourTableName where DATE(yourColumnName) > (NOW() - INTERVAL 7 DAY);

참고: 현재 날짜가 '2019-06-02'라고 가정하고 설명을 진행하겠습니다.

1. 테이블 생성

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

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

2. 데이터 삽입

INSERT 명령어를 사용하여 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable values('2018-03-21');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('2019-05-22');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('2019-05-27');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2019-06-01');
Query OK, 1 row affected (0.16 sec)

3. 전체 레코드 확인

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

mysql> select *from DemoTable;

출력 결과

+------------+
| LoginDate  |
+------------+
| 2018-03-21 |
| 2019-05-22 |
| 2019-05-27 |
| 2019-06-01 |
+------------+
4 rows in set (0.00 sec)

4. 최근 7일 이내 데이터 조회 쿼리

다음은 오늘 날짜와 7일 전 사이의 데이터만 출력하는 쿼리입니다.

mysql> select *from DemoTable where DATE(LoginDate) > (NOW() - INTERVAL 7 DAY);

출력 결과

+------------+
| LoginDate  |
+------------+
| 2019-05-27 |
| 2019-06-01 |
+------------+
2 rows in set (0.06 sec)

실행 결과를 보면 현재 날짜(2019-06-02)를 기준으로 7일 이내에 해당하는 2019-05-272019-06-01, 두 개의 레코드만 반환된 것을 확인할 수 있습니다. 이처럼 NOW() - INTERVAL 7 DAY 구문을 활용하면 별도의 복잡한 계산 없이도 최근 7일간의 데이터를 간편하게 필터링할 수 있습니다.