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

MySQL에서 두 타임스탬프의 일수 차이 구하기: DATEDIFF() 함수 완벽 가이드

MySQL에서 두 타임스탬프 사이의 차이를 일(day) 단위로 계산하려면 내장 함수인 DATEDIFF()를 사용하면 됩니다. 이 함수는 첫 번째 날짜에서 두 번째 날짜를 뺀 결과를 일수로 반환합니다.

DATEDIFF() 기본 문법

select datediff(yourColumnName1,yourColumnName2) as anyVariableName from yourTableName;

첫 번째 인자에서 두 번째 인자를 빼는 방식으로 동작하기 때문에, 인자의 순서에 따라 결과값의 부호가 달라질 수 있다는 점을 유의해야 합니다.

예제 테이블 생성하기

실제 동작을 확인하기 위해 타임스탬프 컬럼 두 개를 가진 테이블을 먼저 생성해 보겠습니다.

mysql> create table DifferenceTimestamp
   -> (
   -> IssueTime timestamp,
   -> DueTime timestamp
   -> );
Query OK, 0 rows affected (0.66 sec)

샘플 데이터 삽입하기

INSERT 명령어를 사용하여 현재 시점과 과거 날짜의 조합으로 테스트 데이터를 입력합니다. DATE_ADD() 함수에 음수 INTERVAL을 지정하면 과거 날짜를 손쉽게 만들 수 있습니다.

mysql> insert into DifferenceTimestamp values(now(),date_add(now(),interval -30 Day));
Query OK, 1 row affected (0.12 sec)

mysql> insert into DifferenceTimestamp values(now(),date_add(now(),interval -24 Day));
Query OK, 1 row affected (0.16 sec)

mysql> insert into DifferenceTimestamp values(now(),date_add(now(),interval -5 Day));
Query OK, 1 row affected (0.14 sec)

저장된 데이터 확인하기

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

mysql> select *from DifferenceTimestamp;

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

+---------------------+---------------------+
| IssueTime           | DueTime             |
+---------------------+---------------------+
| 2018-12-07 17:48:28 | 2018-11-07 17:48:28 |
| 2018-12-07 17:48:40 | 2018-11-13 17:48:40 |
| 2018-12-07 17:48:46 | 2018-12-02 17:48:46 |
+---------------------+---------------------+
3 rows in set (0.00 sec)

DATEDIFF()로 일수 차이 계산하기

이제 두 타임스탬프 간의 차이를 일 단위로 구하는 쿼리를 실행해 보겠습니다.

mysql> SELECT DATEDIFF(IssueTime, DueTime) AS DifferenceInTimestampDays from DifferenceTimestamp;

결과는 다음과 같습니다.

+---------------------------+
| DifferenceInTimestampDays |
+---------------------------+
|                        30 |
|                        24 | 
|                         5 |
+---------------------------+
3 rows in set (0.00 sec)

추가 팁: TIMESTAMPDIFF()와의 비교

일 단위뿐 아니라 시간, 분, 초 등 더 세밀한 단위의 차이가 필요하다면 TIMESTAMPDIFF() 함수를 사용하는 것이 좋습니다. 예를 들어 TIMESTAMPDIFF(HOUR, DueTime, IssueTime)처럼 단위를 직접 지정할 수 있어 다양한 상황에서 유용하게 활용됩니다.