Compartilhar via


TipoINTERVAL

Aplica-se a: marca de seleção positiva SQL do Databricks marca de seleção positiva 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