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

TIME_TO_SEC

설명​

TIME_TO_SEC 함수는 입력된 시간 값을 총 초 수로 변환합니다. 이 함수는 TIME 및 DATETIME 타입을 지원합니다. 입력값이 DATETIME 타입이면 시간 부분(HH:MM:SS)을 자동으로 추출하여 계산하고, 시간만 포함된 값이면 총 초 수로 직접 변환합니다.

이 함수는 MySQL의 time_to_sec 함수와 동일하게 동작합니다.

구문​

TIME_TO_SEC(<date_or_time_expr>)

매개변수​

매개변수설명
<date_or_time_expr>필수입니다. TIME 또는 DATETIME 타입을 지원합니다. 입력값이 DATETIME 타입이면 시간 부분을 추출하여 계산합니다. 구체적인 날짜 및 시간 형식은 날짜 및 시간 변환과 날짜 변환을 참조하세요.

반환값​

입력된 시간 값에 해당하는 총 초 수를 INT 타입으로 반환합니다. 계산식은 시간×3600 + 분×60 + 초입니다.

  • 날짜 및 시간 문자열을 입력할 때는 명시적으로 날짜 및 시간 타입으로 변환해야 합니다. 그렇지 않으면 기본적으로 시간 타입으로 변환되어 NULL이 반환됩니다.
  • 입력값이 음수 시간(예: -01:30:00)이면 해당하는 음수 초 수(예: -5400)를 반환합니다.
  • 입력값이 NULL이면 NULL을 반환합니다.
  • 마이크로초 부분은 무시합니다(예: 12:34:56.789는 12:34:56으로만 계산합니다).

예제​

-- Pure time type
SELECT TIME_TO_SEC('16:32:18') AS result;
+--------+
| result |
+--------+
| 59538 |
+--------+

-- Process the DATETIME string and return NULL.
SELECT TIME_TO_SEC('2025-01-01 16:32:18') AS result;
+--------+
| result |
+--------+
| NULL |
+--------+

-- A datetime string needs to be explicitly converted to a datetime type.
SELECT TIME_TO_SEC(cast('2025-01-01 16:32:18' as datetime)) AS result;
+--------+
| result |
+--------+
| 59538 |
+--------+

-- Negative time conversion
SELECT TIME_TO_SEC('-02:30:00') AS result;
+--------+
| result |
+--------+
| -9000 |
+--------+

-- Negative time with microseconds (ignore microseconds)
SELECT TIME_TO_SEC('-16:32:18.99') AS result;
+--------+
| result |
+--------+
| -59538 |
+--------+

-- Microsecond processing (ignore microseconds)
SELECT TIME_TO_SEC('10:15:30.123456') AS result;
+--------+
| result |
+--------+
| 36930 |
+--------+

-- Invalid time
SELECT TIME_TO_SEC('12:60:00') AS result;
+--------+
| result |
+--------+
| NULL |
+--------+

-- Exceeds TIME range
SELECT TIME_TO_SEC('839:00:00') AS result;
+--------+
| result |
+--------+
| NULL |
+--------+

-- Parameter is NULL
SELECT TIME_TO_SEC(NULL) AS result;
+--------+
| result |
+--------+
| NULL |
+--------+