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

MySQL에서 현재 날짜와 테이블 날짜 레코드 간의 차이 구하는 방법

MySQL에서 현재 날짜와 테이블에 저장된 날짜 레코드 사이의 차이를 구하려면 DATEDIFF() 함수를 사용하면 됩니다. 이 함수는 두 날짜 사이의 일수 차이를 정수로 반환합니다.

1. 테이블 생성하기

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

mysql> create table DemoTable1446
-> (
-> DueDate date
-> );
Query OK, 0 rows affected (1.42 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용하여 테이블에 날짜 레코드를 몇 개 추가합니다.

mysql> insert into DemoTable1446 values('2019-01-21');
Query OK, 1 row affected (0.69 sec)
mysql> insert into DemoTable1446 values('2019-02-01');
Query OK, 1 row affected (0.44 sec)
mysql> insert into DemoTable1446 values('2019-09-30');
Query OK, 1 row affected (0.16 sec)

3. 저장된 레코드 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1446;

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

+------------+
| DueDate |
+------------+
| 2019-01-21 |
| 2019-02-01 |
| 2019-09-30 |
+------------+
3 rows in set (0.10 sec)

4. 현재 날짜 확인하기

CURDATE() 함수로 현재 시스템 날짜를 확인할 수 있습니다.

mysql> select curdate();

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

+------------+
| curdate() |
+------------+
| 2019-10-01 |
+------------+
1 row in set (0.12 sec)

5. DATEDIFF()로 날짜 차이 구하기

다음 쿼리는 현재 날짜(CURDATE())와 테이블의 각 날짜 레코드(DueDate) 사이의 일수 차이를 계산합니다.

mysql> select datediff(curdate(),DueDate) from DemoTable1446;

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

+-----------------------------+
| datediff(curdate(),DueDate) |
+-----------------------------+
| 253 |
| 242 |
| 1 |
+-----------------------------+
3 rows in set (0.00 sec)

참고 사항

DATEDIFF(날짜1, 날짜2)는 '날짜1 - 날짜2'의 일수를 반환합니다. 따라서 첫 번째 인자에 현재 날짜를, 두 번째 인자에 비교할 날짜 컬럼을 넣으면 과거 날짜까지 경과한 일수가 양수로 출력됩니다. 반대 순서로 작성하면 음수 값이 반환되므로 인자의 순서에 유의해야 합니다.