본문으로 건너뛰기
최종 수정: 에

MILLISECONDS_DIFF

설명​

MILLISECONDS_DIFF 함수는 두 날짜 및 시간 값 사이의 차이를 밀리초 단위로 계산합니다. 결과는 종료 시간에서 시작 시간을 뺀 밀리초 수입니다. 이 함수는 DATETIME 타입을 지원합니다.

구문​

MILLISECONDS_DIFF(`<date_or_time_expr1>`, `<date_or_time_expr2>`)

매개변수​

매개변수설명
<date_or_time_expr1>종료 시간으로, DATETIME 타입입니다. 구체적인 날짜 및 시간 형식은 날짜 및 시간 변환과 날짜 변환을 참조하세요.
<date_or_time_expr2>시작 시간으로, DATETIME 타입입니다. 구체적인 날짜 및 시간 형식은 날짜 및 시간 변환과 날짜 변환을 참조하세요.

반환값​

INT 타입 값을 반환하며, 두 시간 사이의 차이를 밀리초 단위로 나타냅니다.

  • <date_or_time_expr1>이 <date_or_time_expr2>보다 늦으면 결과는 양수입니다.
  • <date_or_time_expr1>이 <date_or_time_expr2>보다 이르면 결과는 음수입니다.
  • 두 시간이 밀리초 부분까지 같으면 결과는 0입니다.
  • 입력이 연도, 월, 일만 포함하는 DATE 타입이면 시간 부분의 기본값은 00:00:00.000으로 설정됩니다.
  • 입력 시간에 마이크로초가 포함되어 있으면(예: '2023-01-01 00:00:00.123456'), 계산 시 밀리초 정밀도까지만 남기고 나머지를 자동으로 잘라냅니다(예: 123 milliseconds).
  • 매개변수 중 하나라도 NULL이면 함수는 NULL을 반환합니다.

예제​

-- Calculate millisecond difference
SELECT MILLISECONDS_DIFF('2020-12-25 21:00:00.623000', '2020-12-25 21:00:00.123000');
+-------------------------------------------------------------------------------+
| MILLISECONDS_DIFF('2020-12-25 21:00:00.623000', '2020-12-25 21:00:00.123000') |
+-------------------------------------------------------------------------------+
| 500 |
+-------------------------------------------------------------------------------+

-- End time is earlier than start time, returns negative value
SELECT MILLISECONDS_DIFF('2023-10-01 12:00:00.500', '2023-10-01 12:00:00.800');
+-------------------------------------------------------------------------+
| MILLISECONDS_DIFF('2023-10-01 12:00:00.500', '2023-10-01 12:00:00.800') |
+-------------------------------------------------------------------------+
| -300 |
+-------------------------------------------------------------------------+

-- Input includes microseconds (automatically truncated to milliseconds)
SELECT MILLISECONDS_DIFF('2023-01-01 00:00:00.123456', '2023-01-01 00:00:00.000123');
+-------------------------------------------------------------------------------+
| MILLISECONDS_DIFF('2023-01-01 00:00:00.123456', '2023-01-01 00:00:00.000123') |
+-------------------------------------------------------------------------------+
| 123 |
+-------------------------------------------------------------------------------+

-- Input is of DATE type (default time is 00:00:00.000)
SELECT MILLISECONDS_DIFF('2023-10-02', '2023-10-01');
+-----------------------------------------------+
| MILLISECONDS_DIFF('2023-10-02', '2023-10-01') |
+-----------------------------------------------+
| 86400000 |
+-----------------------------------------------+

-- Any parameter is NULL, returns NULL
SELECT MILLISECONDS_DIFF('2023-01-01 00:00:00', NULL), MILLISECONDS_DIFF(NULL, '2023-01-01 00:00:00');
+------------------------------------------------+------------------------------------------------+
| milliseconds_diff('2023-01-01 00:00:00', NULL) | milliseconds_diff(NULL, '2023-01-01 00:00:00') |
+------------------------------------------------+------------------------------------------------+
| NULL | NULL |
+------------------------------------------------+------------------------------------------------+

-- Times are identical, returns 0
SELECT MILLISECONDS_DIFF('2025-08-11 15:30:00.123', '2025-08-11 15:30:00.123');
+-------------------------------------------------------------------------+
| MILLISECONDS_DIFF('2025-08-11 15:30:00.123', '2025-08-11 15:30:00.123') |
+-------------------------------------------------------------------------+
| 0 |
+-------------------------------------------------------------------------+