카테고리:

날짜 및 시간 함수

TIMEDIFF

지정된 날짜 또는 시간 부분을 기반으로 두 날짜, 시간 또는 타임스탬프 식 간의 차이를 계산합니다. 함수는 세 번째 인자에서 두 번째 인자를 뺀 결과를 반환합니다.

DATEDIFF 를 대체합니다.

구문

TIMEDIFF( <date_or_time_part> , <date_or_time_expr1> , <date_or time_expr2> )
Copy

인자

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_expr2date_or_time_expr1 간의 단위(초, 일 등) 차이를 나타내는 정수를 반환합니다.

사용법 노트

  • 출력 값은 음수일 수 있습니다(예: -12일).

  • date_or_time_expr1date_or_time_expr2 는 날짜, 시간 또는 타임스탬프일 수 있습니다.

  • 이 함수는 연도, 분기, 월, 주, 일, 시간, 분, 초, 밀리초, 마이크로초, 나노초 단위를 지원합니다.

  • date_or_time_part지원되는 날짜 및 시간 부분 에 나열된 값 중 하나여야 합니다.

    date_or_time_partweek (또는 그 변형)인 경우, 출력은 WEEK_START 세션 매개 변수에 의해 제어됩니다. 예를 포함한 자세한 내용은 달력상의 주 및 요일 섹션을 참조하십시오.

  • 차이를 계산하는 데 사용되는 단위(예: month)는 결과를 결정하는 데 사용되는 DATE, TIME 또는 TIMESTAMP 필드의 부분을 결정하므로 결과의 정밀도를 결정합니다.

    더 작은 단위는 사용되지 않으므로 값은 반올림되지 않습니다. 예를 들어, 2021년 1월 1일과 2021년 2월 28일의 차이가 한 달보다 두 달에 더 가깝더라도 다음은 한 달을 반환합니다.

    DATEDIFF(month, '2021-01-01'::DATE, '2021-02-28'::DATE)
    
    Copy

    DATE 값의 경우:

    • year 는 연도만 사용하고 다른 모든 부분은 무시합니다.

    • month 는 월과 연도를 사용합니다.

    • day 는 전체 날짜를 사용합니다.

    TIME 값의 경우:

    • hour 는 시간만 사용하고 다른 모든 부분은 무시합니다.

    • minute 는 시 및 분을 사용합니다.

    • second 는 시, 분, 초를 사용하지만 소수 자리 초는 사용하지 않습니다.

    • millisecond 는 시, 분, 초, 그리고 소수 자리 초의 처음 세 자리를 사용합니다. 소수 자리 초는 반올림되지 않습니다. 예를 들어, DATEDIFF(milliseconds, '00:00:00', '00:00:01.1239') 는 1.124초가 아니라 1.123초를 반환합니다.

    • microsecond 는 시, 분, 초, 그리고 소수 자리 초의 처음 여섯 자리를 사용합니다. 소수 자리 초는 반올림되지 않습니다.

    • nanosecond 는 시, 분, 초, 그리고 소수 자리 초의 아홉 자리 모두를 사용합니다.

    TIMESTAMP 값의 경우:

    규칙은 위의 DATE 및 TIME 데이터 타입에 대한 규칙과 일치합니다. 지정된 단위와 더 큰 단위만 사용됩니다.

이는 두 날짜를 뺀 결과를 보여주며, 여기서 두 번째 날짜가 첫 번째 날짜보다 2년 늦습니다.

SELECT TIMEDIFF(YEAR, '2017-01-01', '2019-01-01') AS Years;
+-------+
| YEARS |
|-------|
|     2 |
+-------+
Copy

이는 값이 반올림되지 않고 잘림을 나타냅니다. 차이는 11개월보다 12개월에 가깝지만, Snowflake는 차이를 11개월로 계산합니다.

SELECT TIMEDIFF(MONTH, '2017-01-1', '2017-12-31') AS Months;
+--------+
| MONTHS |
|--------|
|     11 |
+--------+
Copy

DATEDIFF 에 추가 예가 있습니다.