- 카테고리:
TIMEDIFF¶
지정된 날짜 또는 시간 부분을 기반으로 두 날짜, 시간 또는 타임스탬프 식 간의 차이를 계산합니다. 함수는 세 번째 인자에서 두 번째 인자를 뺀 결과를 반환합니다.
DATEDIFF 를 대체합니다.
구문¶
TIMEDIFF( <date_or_time_part> , <date_or_time_expr1> , <date_or time_expr2> )
인자¶
date_or_time_part
시간 단위. 지원되는 날짜 및 시간 부분 에 나열된 값 중 하나여야 합니다(예:
month
). 값은 문자열 리터럴이거나 따옴표로 묶지 않을 수 있습니다(예:'month'
또는month
).date_or_time_expr1
,date_or_time_expr2
비교할 값입니다. 날짜, 시간 또는 타임스탬프이거나, 날짜, 시간 또는 타임스탬프로 평가할 수 있는 식이어야 합니다.
date_or_time_expr1
값은date_or_time_expr2
에서 뺍니다.
반환¶
date_or_time_expr2
및 date_or_time_expr1
간의 단위(초, 일 등) 차이를 나타내는 정수를 반환합니다.
사용법 노트¶
출력 값은 음수일 수 있습니다(예: -12일).
이 함수는 연도, 분기, 월, 주, 일, 시간, 분, 초, 밀리초, 마이크로초, 나노초 단위를 지원합니다.
date_or_time_part
가week
(또는 그 변형)인 경우, 출력은 WEEK_START 세션 매개 변수에 의해 제어됩니다. 예를 포함한 자세한 내용은 달력상의 주 및 요일 섹션을 참조하십시오.차이를 계산하는 데 사용되는 단위(예:
month
)에 따라 DATE, TIME 또는 TIMESTAMP 필드에서 계산되는 부분이 결정됩니다. 따라서 단위에 따라 결과의 정밀도가 결정됩니다.더 작은 단위는 사용되지 않으므로 값은 반올림되지 않습니다. 예를 들어, 2021년 1월 1일과 2021년 2월 28일의 차이가 한 달보다 두 달에 더 가깝더라도 다음은 한 달을 반환합니다.
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 데이터 타입에 대한 규칙과 일치합니다. 지정된 단위와 더 큰 단위만 사용됩니다.
예¶
이는 두 날짜를 뺀 결과를 보여주며, 여기서 두 번째 날짜가 첫 번째 날짜보다 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 에 추가 예가 있습니다.