Tipo deINTERVAL
Se aplica a: Databricks SQL Databricks Runtime
Representa intervalos de tiempo en una escala de segundos o meses.
Sintaxis
INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }
yearMonthIntervalQualifier
{ YEAR [TO MONTH] |
MONTH }
dayTimeIntervalQualifier
{ DAY [TO { HOUR | MINUTE | SECOND } ] |
HOUR [TO { MINUTE | SECOND } ] |
MINUTE [TO SECOND] |
SECOND }
Notas
Los intervalos que abarcan años o meses se denominan intervalos de mes/año.
Los intervalos que abarcan días, horas, minutos o segundos se denominan intervalos de día y hora.
No se pueden combinar ni comparar los intervalos de mes y año y los de día y hora.
Los intervalos de día y hora se basan estrictamente en 86 400 s/día y 60 s/min.
Siempre se considera que los segundos incluyen microsegundos.
Límites
Un intervalo de mes/año tiene un rango máximo de +/- 178,956,970
años y 11
meses.
Un intervalo de día y hora tiene un rango máximo de +/- 106,751,991
días, 23
horas, 59
minutos y 59.999999
segundos.
Literales
year-month interval
INTERVAL [+|-] yearMonthIntervalString yearMonthIntervalQualifier
day-time interval
INTERVAL [+|-] dayTimeIntervalString dayTimeIntervalQualifier
yearMonthIntervalString
{ '[+|-] y[...]' |
'[+|-] y[...]-[m]m' }
dayTimeIntervalString
{ '[+|-] d[...]' |
'[+|-] d[...] [h]h' |
'[+|-] d[...] [h]h:[m]m' |
'[+|-] d[...] [h]h:[m]m:[s]s' |
'[+|-] d[...] [h]h:[m]m:[s]s.ms[ms][ms][us][us][us]' |
'[+|-] h[...]' |
'[+|-] h[...]:[m]m' |
'[+|-] h[...]:[m]m:[s]s' |
'[+|-] h[...]:[m]m:[s]s.ms[ms][ms][us][us][us]' |
'[+|-] m[...]' |
'[+|-] m[...]:[s]s' |
'[+|-] m[...]:[s]s.ms[ms][ms][us][us][us]' |
'[+|-] s[...]' |
'[+|-] s[...].ms[ms][ms][us][us][us]' }
y
: número transcurrido de años.m
: número transcurrido de meses.d
: número transcurrido de días.h
: número transcurrido de horas.m
: número transcurrido de minutos.s
: número transcurrido de segundos.ms
: número transcurrido de milisegundos.us
: número transcurrido de microsegundos.
A menos que una unidad constituya la unidad principal de intervalQualifier
, debe estar dentro del rango definido:
- Meses: entre 0 y 11
- Horas: entre 0 y 23
- Minutos: entre 0 y 59
- Segundos: entre 0,000000 y 59,999999
Puede añadir un signo como prefijo dentro o fuera de intervalString
.
Si hay un signo -
, el intervalo es negativo. Si hay dos signos -
(o ninguno), el intervalo es positivo.
Si los componentes de intervalString
no coinciden con los componentes de intervalQualifier
, se genera un error.
Si el valor de intervalString
no se ajusta al rango especificado en intervalQualifier
, se genera un error.
Ejemplos
> SELECT INTERVAL '100-00' YEAR TO MONTH;
100-0
> SELECT INTERVAL '-3600' MONTH;
-300-0
> SELECT INTERVAL -'200:13:50.3' HOUR TO SECOND;
-200:13:50.3
> SELECT typeof(INTERVAL -'200:13:50.3' HOUR TO SECOND);
interval hour to second
> SELECT CAST('11 23:4:0' AS INTERVAL DAY TO SECOND);
11 23:04:00