-(빼기 기호) 연산자(Databricks SQL)

에서 의 빼기 expr2 를 반환합니다. expr1

구문

expr1 - expr2

인수

  • expr1: 숫자, DATE, TIMESTAMP 또는 INTERVAL 식입니다.
  • expr2: 허용되는 형식은 형식에 따라 달라집니다. expr
    • 가 인 경우 expr1 숫자 expr2 식은 숫자 식이어야 합니다.
    • 가 연도/월 또는 일 시간 간격인 경우 는 expr1 일치하는 간격 expr2 클래스여야 합니다.
    • 그렇지 않으면 expr2 DATE 또는 TIMESTAMP여야 합니다.

반환

결과 형식은 다음 순서로 결정됩니다.

  • expr1가 숫자이면 결과는 인수의 일반적인 최대 형식입니다.
  • 가 DATE이고 가 일 시간 간격인 경우 expr1 결과는 expr2 TIMESTAMP입니다.
  • expr1가 TIMESTAMP이고 expr2 가 간격인 경우 결과는 TIMESTAMP입니다.
  • expr1expr2 가 DAT인 경우 결과는 INTERVAL DAYS 입니다.
  • expr1또는 expr2 가 TIMESTAMP인 경우 결과는 INTERVAL DAY TO SECOND 입니다.
  • expr1expr2 가 연도-월 간격인 경우 결과는 결과를 나타낼 수 있는 충분히 넓은 단위의 연도-월 간격입니다.
  • 및 가 일 시간 간격인 경우 expr1 결과는 결과를 나타낼 수 있는 충분히 넓은 expr2 단위의 일 시간 간격입니다.
  • 그렇지 않으면 결과 형식이 expr1 과 일치합니다.

두 식이 간격이면 동일한 클래스여야 합니다.

DATE Databricks Runtime 연도-월 간격을 빼면 결과 날짜가 올바른지 확인합니다.

결과가 Databricks Runtime 결과 형식을 오버플로하면 오버플로 오류가 발생합니다.

> SELECT 2 - 1;
 1

> SELECT DATE'2021-03-20' - INTERVAL '2' MONTH
 2021-1-20

> SELECT TIMESTAMP'2021-03-20 12:15:29' - INTERVAL '3' SECOND
 2021-03-20 12:15:26

>  SELECT typeof(INTERVAL '3' DAY - INTERVAL '2' HOUR);
 interval day to hour

> SELECT typeof(current_date - (current_date + INTERVAL '1' DAY));
 interval day

> SELECT typeof(current_tiemstamp - (current_date + INTERVAL '1' DAY));
 interval day to second

> SELECT DATE'2021-03-31' - INTERVAL '1' MONTH;
 2021-02-28