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

MySQL DATEDIFF() 함수로 현재 날짜와 가입 날짜의 차이 계산하기

MySQL에서 현재 날짜와 가입 날짜 사이의 차이를 구하려면 DATEDIFF() 함수를 사용할 수 있습니다. 먼저 CURDATE() 함수로 현재 날짜를 확인한 뒤, 가입 날짜와의 차이를 계산하는 방법을 단계별로 살펴보겠습니다.

1단계: 현재 날짜 확인하기

먼저 CURDATE() 함수를 사용해 현재 날짜를 조회합니다.

mysql> select curdate();
+------------+
|  curdate() |
+------------+
| 2019-10-26 |
+------------+
1 row in set (0.00 sec)

2단계: 테이블 생성하기

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

mysql> create table DemoTable
    -> (
    -> JoiningDate varchar(40)
    -> );
Query OK, 0 rows affected (0.61 sec)

3단계: 데이터 삽입하기

INSERT 명령을 사용해 가입 날짜 데이터를 여러 건 입력합니다.

mysql> insert into DemoTable values('10/10/1998');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('31/12/2010');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('01/01/2017');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('25/10/2019');
Query OK, 1 row affected (0.14 sec)

4단계: 저장된 데이터 조회하기

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

mysql> select *from DemoTable;

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

+-------------+
| JoiningDate |
+-------------+
|  10/10/1998 |
|  31/12/2010 |
|  01/01/2017 |
|  25/10/2019 |
+-------------+
4 rows in set (0.00 sec)

5단계: 현재 날짜와 가입 날짜의 차이 계산하기

가입 날짜가 '일/월/년' 형식의 문자열로 저장되어 있으므로, STR_TO_DATE() 함수를 사용해 이를 날짜 형식으로 변환한 후 DATEDIFF() 함수에 적용합니다.

mysql> select datediff(curdate(),str_to_date(JoiningDate,'%d/%m/%Y')) from DemoTable;

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

+---------------------------------------------------------+
| datediff(curdate(),str_to_date(JoiningDate,'%d/%m/%Y')) |
+---------------------------------------------------------+
|                                                    7686 |
|                                                    3221 |
|                                                    1028 |
|                                                       1 |
+---------------------------------------------------------+
4 rows in set (0.00 sec)

핵심 포인트 정리

DATEDIFF(날짜1, 날짜2)는 두 날짜 사이의 일수 차이를 반환합니다. 첫 번째 인자에서 두 번째 인자를 뺀 값이 결과로 나오므로, 인자 순서에 유의해야 합니다. 또한 날짜가 문자열로 저장된 경우에는 STR_TO_DATE() 함수와 '%d/%m/%Y' 같은 포맷 지정자를 활용해 올바르게 변환한 뒤 비교하는 것이 중요합니다.