TypeINTERVAL
S’applique à : Databricks SQL Databricks Runtime
Représente des intervalles de temps sur une échelle de secondes ou de mois.
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