Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Tipo
Aplica-se a:
SQL do Databricks
Runtime do Databricks
Representa intervalos de tempo em uma escala de segundos ou meses.
Sintaxe
INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }
yearMonthIntervalQualifier
{ YEAR [TO MONTH] |
MONTH }
dayTimeIntervalQualifier
{ DAY [TO { HOUR | MINUTE | SECOND } ] |
HOUR [TO { MINUTE | SECOND } ] |
MINUTE [TO SECOND] |
SECOND }
Observações
Intervalos que abrangem anos ou meses são chamados de intervalos de ano-mês.
Intervalos que abrangem dias, horas, minutos ou segundos são chamados de intervalos de dia-horário.
Não é possível combinar nem comparar intervalos de ano/mês e dia-horário.
Intervalos de dia-horário são estritamente baseados em 86400 s/dias e 60 s/min.
Sempre é levado em consideração que os segundos podem incluir microssegundos.
Limites
Um intervalo de ano/mês tem um intervalo máximo de +/- 178,956,970 anos e 11 meses.
Um intervalo de dia-horário tem um intervalo máximo de +/- 106,751,991 dias, 23 horas, 59 minutos e 59.999999 segundos.
Literais
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: o número de anos decorridos. -
m: o número de meses decorridos. -
d: o número de dias decorridos. -
h: o número de horas decorridos. -
m: o número de minutos decorridos. -
s: o número de segundos decorridos. -
ms: o número de milissegundos decorridos. -
us: o número de microssegundos decorridos.
A menos que uma unidade constitua a unidade principal de intervalQualifier, ela deve estar dentro do intervalo definido:
- Meses: entre 0 e 11
- Horas: entre 0 e 23
- Minutos: entre 0 e 59
- Segundos: entre 0,000000 e 59,999999
Você pode prefixar um sinal dentro ou fora de intervalString.
Se houver um sinal de -, o intervalo será negativo. Se houver dois ou nenhum sinal de -, o intervalo será positivo.
Se os componentes em intervalString não corresponderem aos componentes em intervalQualifier, será gerado um erro.
Se o valor intervalString não se ajustar ao intervalo especificado por intervalQualifier, será gerado um erro.
Exemplos
> 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
-- Binding in a STRING parameter to an INTERVAL.
> EXECUTE IMMEDIATE 'SELECT CAST(:parm AS INTERVAL MINUTE TO SECOND)' USING '5:30' AS parm;
5:30