Delen via


INTERVAL type

Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Vertegenwoordigt intervallen van tijd op een schaal van seconden of maanden.

Syntaxis

INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }

yearMonthIntervalQualifier
 { YEAR [TO MONTH] |
   MONTH }

dayTimeIntervalQualifier
 { DAY [TO { HOUR | MINUTE | SECOND } ] |
   HOUR [TO { MINUTE | SECOND } ] |
   MINUTE [TO SECOND] |
   SECOND }

Opmerkingen

Intervallen voor jaren of maanden worden jaarmaandintervallen genoemd.

Intervallen voor dagen, uren, minuten of seconden worden dag-tijdintervallen genoemd.

U kunt jaarmaand- en dagtijdintervallen niet combineren of vergelijken.

Dag-tijdintervallen zijn strikt gebaseerd op 86400s/dag en 60s/min.

Seconden worden altijd beschouwd als microseconden.

Limieten

Een interval van een jaarmaand heeft een maximaal bereik van +/- 178,956,970 jaren en 11 maanden.

Een dag-tijdsinterval heeft een maximaal bereik van +/- 106,751,991 dagen, 23 uren, 59 minuten en 59.999999 seconden.

Letterlijke waarden

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: Het verstreken aantal jaren.
  • m: Het verstreken aantal maanden.
  • d: Het verstreken aantal dagen.
  • h: Het verstreken aantal uren.
  • m: Het verstreken aantal minuten.
  • s: Het verstreken aantal seconden.
  • ms: Het verstreken aantal milliseconden.
  • us: Het verstreken aantal microseconden.

Tenzij een eenheid de voorloopeenheid van de intervalQualifier eenheid vormt, moet deze binnen het gedefinieerde bereik vallen:

  • Maanden: tussen 0 en 11
  • Uren: tussen 0 en 23
  • Minuten: tussen 0 en 59
  • Seconden: tussen 0.000000 en 59.999999

U kunt een teken binnen of buiten intervalStringvoorvoegsel toevoegen. Als er één - teken is, is het interval negatief. Als er twee of geen - tekenen zijn, is het interval positief. Als de onderdelen in de intervalString onderdelen niet overeenkomen met de onderdelen in de intervalQualifier fout. Als de intervalString waarde niet in het bereik past dat is opgegeven door de intervalQualifier fout wordt gegenereerd.

Voorbeelden

> 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