MySQL에서 두 시간 값 사이의 차이를 계산해야 할 때가 종종 있습니다. 예를 들어 작업 시작 시간과 종료 시간의 간격을 구하거나, 두 이벤트 발생 시점의 차이를 확인하고 싶은 경우가 그렇습니다. 이럴 때 TIMEDIFF() 함수를 사용하면 매우 간단하게 해결할 수 있습니다.
TIMEDIFF() 함수란?
TIMEDIFF()는 MySQL에서 제공하는 날짜·시간 관련 내장 함수로, 두 개의 시간(time) 또는 날짜-시간(datetime) 표현식을 인자로 받아 그 차이를 시간 값으로 반환합니다. 반환되는 결과는 'HH:MM:SS' 형식으로 표시됩니다.
사용 문법
TIMEDIFF(time1, time2)
첫 번째 인자에서 두 번째 인자를 뺀 값이 결과로 반환됩니다. 즉, time1 - time2의 결과입니다.
예제
다음은 '04:05:45'와 '03:05:45'라는 두 시간 값의 차이를 구하는 예제입니다.
mysql> SELECT TIMEDIFF('04:05:45', '03:05:45') AS 'Difference in Time';
+---------------------------------+
| Difference in Time |
+---------------------------------+
| 01:00:00 |
+---------------------------------+
1 row in set (0.00 sec)실행 결과를 보면 두 시간 값의 차이인 '01:00:00', 즉 정확히 1시간의 차이가 반환된 것을 확인할 수 있습니다.
참고 사항
- TIMEDIFF()에 전달하는 두 인자는 반드시 같은 유형(둘 다 TIME 또는 둘 다 DATETIME)이어야 합니다.
- 결과 값의 범위는 '-838:59:59'부터 '838:59:59'까지로 제한됩니다.
- 날짜까지 포함한 차이를 구하려면 TIMESTAMPDIFF() 함수를 사용하는 것이 더 적합할 수 있습니다.