Compartir a través de


Función try_subtract

Se aplica a:casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 10.4 LTS y versiones posteriores

Esta función devuelve la resta de los elementos expr2 y expr1. Si ocurre un desbordamiento, devuelve el valor NULL.

Sintaxis

try_subtract ( expr1 , expr2 )

Argumentos

  • expr1: una expresión numérica, DATE, TIMESTAMP o INTERVAL.
  • expr2: Si expr1 es un valor numérico, expr2 debe ser una expresión numérica; en el caso contrario, una expresión INTERVAL.

Devoluciones

  • Si expr1 es un valor numérico, devuelve el tipo más común de los argumentos.
  • Si expr1 es de tipo DATE y expr2 es un intervalo de día y hora, el resultado es de tipo TIMESTAMP.
  • Si expr1 y expr2 son intervalos de mes y año, el resultado es un intervalo de mes y año con unidades suficientes para representar el resultado.
  • Si expr1 y expr2 son intervalos de día y hora, el resultado es un intervalo de día y hora con unidades suficientes para representar el resultado.
  • En cualquier otro caso, el tipo del resultado coincide con el de expr1.

Si ambas expresiones son intervalos, deben ser de la misma clase.

Si el resultado desborda el tipo de resultado, Databricks SQL devuelve NULL.

Al restar un intervalo de mes y año de una fecha, Databricks SQL garantizará que la fecha resultante tenga el formato correcto.

Ejemplos

> 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