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

MySQL에서 오늘 날짜와 일치하는 레코드 조회하는 방법

MySQL에서 오늘 날짜와 동일한 레코드를 가져오려면 CURDATE() 함수를 사용하여 날짜 레코드를 현재 날짜와 비교하면 됩니다. 이번 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable
(
   RegistrationLastDate datetime
);
Query OK, 0 rows affected (0.61 sec)

현재 날짜가 다음과 같다고 가정해 보겠습니다.

2019-09-03

2. 샘플 데이터 삽입하기

insert 명령을 사용하여 테이블에 여러 개의 레코드를 삽입합니다. 시간 정보가 포함된 값과 포함되지 않은 값을 함께 넣어 다양한 경우를 테스트해 보겠습니다.

mysql> insert into DemoTable values('2019-08-01');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2019-09-03 9:50:56');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2019-09-03');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('2019-09-02');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('2019-09-02 9:50:00');
Query OK, 1 row affected (0.10 sec)

3. 전체 레코드 확인하기

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

mysql> select *from DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+----------------------+
| RegistrationLastDate |
+----------------------+
| 2019-08-01 00:00:00 |
| 2019-09-03 09:50:56 |
| 2019-09-03 00:00:00 |
| 2019-09-02 00:00:00 |
| 2019-09-02 09:50:00 |
+----------------------+
5 rows in set (0.00 sec)

4. 오늘 날짜와 일치하는 레코드 조회하기

다음은 오늘 날짜와 일치하는 데이터 레코드만 가져오는 쿼리입니다. 핵심은 DATE() 함수로 datetime 값에서 날짜 부분만 추출한 뒤, CURDATE() 함수가 반환하는 현재 날짜와 비교하는 것입니다.

mysql> select *from DemoTable where DATE(RegistrationLastDate)=curdate();

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

+----------------------+
| RegistrationLastDate |
+----------------------+
| 2019-09-03 09:50:56 |
| 2019-09-03 00:00:00 |
+----------------------+
2 rows in set (0.01 sec)

결과를 보면 2019-09-03에 해당하는 두 개의 레코드만 정확하게 조회된 것을 확인할 수 있습니다. 이처럼 DATE(컬럼명) = CURDATE() 조건을 활용하면 시간 정보와 관계없이 특정 날짜에 해당하는 레코드를 손쉽게 필터링할 수 있습니다.