TIMEDIFF
TIMEDIFF
지정된 날짜 또는 시간 단위를 기준으로 두 날짜, 시간 또는 타임스탬프 표현식 간의 차이를 계산해요. 이 함수는 세 번째 인자에서 두 번째 인자를 뺀 결과를 반환해요.
DATEDIFF의 대안이에요.
본문
구문 (Syntax)
TIMEDIFF( , , )
인자 (Arguments)
date_or_time_part— 시간의 단위예요. 지원되는 날짜 및 시간 단위 문서에 나열된 값 중 하나여야 해요 (예:month). 값은 문자열 리터럴이거나 따옴표 없이 사용할 수 있어요 (예:'month'또는month).date_or_time_expr1,date_or_time_expr2— 비교할 값이에요. 날짜, 시간, 타임스탬프, 또는 날짜·시간·타임스탬프로 평가될 수 있는 표현식이어야 해요.date_or_time_expr2에서date_or_time_expr1을 뺍니다.
반환 값 (Returns)
date_or_time_expr2와 date_or_time_expr1 사이의 단위(초, 일 등) 수 차이를 나타내는 정수를 반환해요.
사용 노트 (Usage Notes)
- 출력 값은 음수일 수 있어요 (예: -12일).
- 이 함수는 연, 분기, 월, 주, 일, 시, 분, 초, 밀리초, 마이크로초, 나노초 단위를 지원해요.
date_or_time_part가week(또는 그 변형)이면 출력은 WEEK_START 세션 매개변수에 의해 제어돼요. 자세한 내용과 예제는 달력 주 및 요일(Calendar weeks and weekdays) 문서를 참고해요.- 차이를 계산하는 데 사용되는 단위(예:
month)는 DATE, TIME, TIMESTAMP 필드의 어느 부분이 평가되는지를 결정해요. 따라서 단위가 결과의 정밀도를 결정해요. - 더 작은 단위는 사용되지 않으므로 값은 반올림되지 않아요. 예를 들어 2021년 1월 1일과 2021년 2월 28일의 차이는 1개월보다 2개월에 더 가깝지만, 다음은 1개월을 반환해요:
DATEDIFF(month, '2021-01-01'::DATE, '2021-02-28'::DATE)
DATE 값의 경우:
year는 연도만 사용하고 다른 모든 부분은 무시해요.month는 월과 연도를 사용해요.day는 전체 날짜를 사용해요.
TIME 값의 경우:
hour는 시간만 사용하고 다른 모든 부분은 무시해요.minute는 시와 분을 사용해요.second는 시, 분, 초를 사용하지만 소수 초는 사용하지 않아요.millisecond는 시, 분, 초, 소수 초의 처음 세 자리를 사용해요. 소수 초는 반올림되지 않아요. 예를 들어DATEDIFF(milliseconds, '2024-02-20 21:18:41.0000', '2024-02-20 21:18:42.1239')는 1.124초가 아닌 1.123초를 반환해요.microsecond는 시, 분, 초, 소수 초의 처음 여섯 자리를 사용해요. 소수 초는 반올림되지 않아요.nanosecond는 시, 분, 초, 소수 초의 아홉 자리 모두를 사용해요.
TIMESTAMP 값의 경우: 규칙은 위의 DATE 및 TIME 데이터 타입 규칙과 일치해요. 지정된 단위와 그보다 큰 단위만 사용돼요.
예제 (Examples)
두 날짜를 뺀 결과를 보여주는데, 두 번째가 첫 번째보다 2년 더 늦어요:
SELECT TIMEDIFF(YEAR, '2017-01-01', '2019-01-01') AS Years;
+-------+
| YEARS |
|-------|
| 2 |
+-------+
값이 반올림이 아니라 잘림임을 보여줘요. 차이는 11개월보다 12개월에 더 가깝지만, Snowflake는 그 차이를 11개월로 계산해요:
SELECT TIMEDIFF(MONTH, '2017-01-1', '2017-12-31') AS Months;
+--------+
| MONTHS |
|--------|
| 11 |
+--------+
추가 예제는 DATEDIFF 문서에 있어요.
더 알아보기
- Snowflake 날짜 및 시간 함수 — 관련 날짜/시간 함수 전체 목록