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

MySQL에서 DATETIME 값이 내일 날짜와 같은지 확인하는 방법

MySQL에서 날짜·시간(DATETIME) 값이 내일 날짜와 일치하는지 확인하려면 DATEDIFF() 함수를 사용하면 됩니다. 이 함수는 두 날짜 사이의 일수 차이를 반환하며, 그 결과가 0이면 두 날짜가 같다는 의미입니다.

1. 테이블 생성

먼저 예제에 사용할 테이블을 만들어 보겠습니다.

mysql> create table DemoTable
-> (
-> ShippingDate datetime
-> );
Query OK, 0 rows affected (0.90 sec)

2. 데이터 삽입

INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values('2019-07-01');
Query OK, 1 row affected (0.29 sec)

mysql> insert into DemoTable values('2019-07-02');
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values('2019-07-03');
Query OK, 1 row affected (0.32 sec)

mysql> insert into DemoTable values('2019-07-04');
Query OK, 1 row affected (0.15 sec)

3. 전체 레코드 조회

SELECT 문으로 테이블에 저장된 모든 데이터를 확인합니다.

mysql> select *from DemoTable;

출력 결과

+---------------------+
| ShippingDate |
+---------------------+
| 2019-07-01 00:00:00 |
| 2019-07-02 00:00:00 |
| 2019-07-03 00:00:00 |
| 2019-07-04 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

4. 내일 날짜와 일치하는 값 확인하기

다음은 DATETIME 값이 내일 날짜와 같은지 확인하는 쿼리입니다. CURDATE()로 오늘 날짜를 구한 뒤 DATE_ADD()로 하루를 더해 내일 날짜를 만들고, DATEDIFF()의 결과가 0인 행만 조회합니다.

mysql> select *from DemoTable
-> WHERE DATEDIFF(ShippingDate, DATE_ADD(CURDATE(), INTERVAL 1 DAY)) = 0;

현재 날짜가 2019-07-01이라면 내일은 2019-07-02가 되고, 해당 날짜가 테이블에 존재하므로 아래와 같은 결과가 출력됩니다.

출력 결과

+---------------------+
| ShippingDate |
+---------------------+
| 2019-07-02 00:00:00 |
+---------------------+
1 row in set (0.08 sec)

참고: 다른 방법

DATEDIFF() 대신 DATE() 함수를 사용해 시간 부분을 제거하고 직접 비교할 수도 있습니다.

mysql> select *from DemoTable
-> WHERE DATE(ShippingDate) = DATE_ADD(CURDATE(), INTERVAL 1 DAY);

두 방식 모두 동일한 결과를 반환하지만, DATEDIFF()는 날짜 차이를 활용한 범위 조건(예: 3일 이내)에도 확장하기 좋아 실무에서 널리 사용됩니다.