Partilhar via


Função try_subtract

Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 10.4 LTS e superior

Devolve a subtração de expr2 a partir de expr1, ou NULL em caso de transbordo.

Sintaxe

try_subtract ( expr1 , expr2 )

Argumentos

  • expr1: Uma expressão numérica, DATE, TIMESTAMP ou INTERVAL.
  • expr2: Se expr1 é numérico, expr2 deve ser uma expressão numérica ou, caso contrário, um INTERVALO.

Devoluções

  • Se expr1 é numérico, então é o tipo máximo comum dos argumentos.
  • Se expr1 é uma DATA e expr2 é um intervalo de tempo diurno, o resultado é um timestamp.
  • Se expr1 e expr2 são intervalos de ano-mês, o resultado é um intervalo de ano-mês com unidades suficientemente amplas para representá-lo.
  • Se expr1 e expr2 são intervalos de tempo do dia, o resultado é um intervalo de tempo do dia de unidades suficientemente amplas para representar o resultado.
  • Caso contrário, o tipo de resultado corresponde a expr1.

Se ambas as expressões forem intervalos, devem ser da mesma classe.

Se o resultado estourar, o tipo de resultado Databricks SQL retornará NULL.

Quando subtrai um intervalo de ano-mês de uma data no Databricks SQL, este assegurará que a data resultante esteja bem formada.

Exemplos

> SELECT try_subtract(1, 2);
 -1

> SELECT try_subtract(DATE'2021-03-20', INTERVAL '2' MONTH);
 2021-1-20

> SELECT try_subtract(TIMESTAMP'2021-03-20 12:15:29', INTERVAL '3' SECOND);
 2021-03-20 12:15:26

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

> SELECT try_subtract(DATE'2021-03-31', INTERVAL '1' MONTH);
 2021-02-28

> SELECT try_subtract(-128Y, 1Y);
  NULL