TypeINTERVAL

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Représente des intervalles de temps sur une échelle de secondes ou de mois.

Important

Delta Lake ne prend pas en charge le type INTERVAL.

Syntaxe

INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }

yearMonthIntervalQualifier
 { YEAR [TO MONTH] |
   MONTH }

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

Notes

Les intervalles couvrant des années ou des mois sont appelés intervalles d’année-mois.

Les intervalles couvrant les jours, les heures, les minutes ou les secondes sont appelés intervalles de jour-heure.

Vous ne pouvez pas combiner ou comparer des intervalles d’année-mois et de jour-heure.

Les intervalles de jour-heure sont strictement basés sur 86400 s/jour et 60 s/min.

Les secondes sont toujours considérées comme des microsecondes.

limites

Un intervalle année-mois contient une plage maximale de +/- 178,956,970 ans et 11 mois.

Un intervalle jour-heure a une plage maximale de +/- 106,751,991 jours, 23 heures, 59 minutes et 59.999999 secondes.

Littéraux

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 : Le nombre d’années écoulées.
  • m : Le nombre de mois écoulés.
  • d : Le nombre de jours écoulés.
  • h : Le nombre d’heures écoulées.
  • m : Le nombre de minutes écoulées.
  • s : Le nombre de secondes écoulées.
  • ms : Le nombre de millisecondes écoulées.
  • us : Le nombre de microsecondes écoulées.

À moins qu’une unité ne constitue l’unité de début de intervalQualifier, elle doit être comprise dans la plage définie :

  • Mois : entre 0 et 11
  • Heures : entre 0 et 23
  • Minutes : entre 0 et 59
  • Secondes : entre 0,000000 et 59,999999

Vous pouvez ajouter un préfixe à un signe à l’intérieur ou à l’extérieur intervalString. S’il y a un signe -, l’intervalle est négatif. S’il y a deux ou aucun signe -, l’intervalle est positif. Si les composants dans intervalString ne correspondent pas aux composants dans intervalQualifier, une erreur est générée. Si la valeur intervalString ne tient pas dans la plage spécifiée avec intervalQualifier, une erreur est générée.

Exemples

> 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