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

MySQL에서 현재 날짜보다 오래된 행 조회하는 방법

MySQL에서 현재 날짜보다 이전의 행 선택하기

MySQL에서 현재 날짜보다 과거의 데이터를 조회해야 하는 경우가 자주 있습니다. 예를 들어 마감일이 지난 작업을 찾거나 만료된 기록을 필터링할 때 유용합니다. NOW() 함수를 활용하면 간단하게 처리할 수 있습니다.

현재 날짜가 2019-08-03이라고 가정하고, 실제 예제를 통해 살펴보겠습니다.

1. 테이블 생성

먼저 날짜를 저장할 테이블을 생성합니다.

mysql> create table DemoTable840(DueDate datetime);
Query OK, 0 rows affected (0.66 sec)

2. 샘플 데이터 삽입

INSERT 문을 사용하여 여러 개의 날짜 데이터를 입력합니다.

mysql> insert into DemoTable840 values('2019-08-9');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable840 values('2019-07-5');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable840 values('2019-08-10');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable840 values('2019-07-13');
Query OK, 1 row affected (0.10 sec)

3. 전체 데이터 확인

SELECT 문으로 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select *from DemoTable840;

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

+---------------------+
| DueDate |
+---------------------+
| 2019-08-09 00:00:00 |
| 2019-07-05 00:00:00 |
| 2019-08-10 00:00:00 |
| 2019-07-13 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

4. 현재 날짜보다 오래된 행 조회하기

핵심은 WHERE 절에서 NOW() 함수와 비교 연산자(<)를 함께 사용하는 것입니다. NOW()는 현재 날짜와 시간을 반환하므로, 이보다 작은(과거인) 값만 필터링됩니다.

mysql> select *from DemoTable840 where DueDate < NOW();

위 쿼리의 실행 결과는 다음과 같습니다.

+---------------------+
| DueDate |
+---------------------+
| 2019-07-05 00:00:00 |
| 2019-07-13 00:00:00 |
+---------------------+
2 rows in set (0.00 sec)

결과를 보면 현재 날짜(2019-08-03)보다 이전인 7월의 두 레코드만 반환된 것을 확인할 수 있습니다. 참고로 CURDATE() 함수를 사용하면 시간을 제외한 날짜만 기준으로 비교할 수도 있으니, 용도에 맞게 선택하여 사용하시기 바랍니다.