ClickHouse/docs/fr/sql_reference/data_types/special_data_types/interval.md
2020-04-04 12:15:31 +03:00

3.5 KiB

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 61 Intervalle

Intervalle

Famille de types de données représentant des intervalles d'heure et de date. Les types de la INTERVAL opérateur.

!!! warning "Avertissement" Interval les valeurs de type de données ne peuvent pas être stockées dans les tables.

Structure:

  • Intervalle de temps en tant que valeur entière non signée.
  • Type de l'intervalle.

Types d'intervalles pris en charge:

  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

Pour chaque type d'intervalle, il existe un type de données distinct. Par exemple, l' DAY l'intervalle correspond au IntervalDay type de données:

SELECT toTypeName(INTERVAL 4 DAY)
┌─toTypeName(toIntervalDay(4))─┐
│ IntervalDay                  │
└──────────────────────────────┘

Utilisation Remarques

Vous pouvez utiliser Interval-tapez des valeurs dans des opérations arithmétiques avec Date et DateTime-type de valeurs. Par exemple, vous pouvez ajouter 4 jours à l'heure actuelle:

SELECT now() as current_date_time, current_date_time + INTERVAL 4 DAY
┌───current_date_time─┬─plus(now(), toIntervalDay(4))─┐
│ 2019-10-23 10:58:45 │           2019-10-27 10:58:45 │
└─────────────────────┴───────────────────────────────┘

Les intervalles avec différents types ne peuvent pas être combinés. Vous ne pouvez pas utiliser des intervalles comme 4 DAY 1 HOUR. Spécifiez des intervalles en unités inférieures ou égales à la plus petite unité de l'intervalle, par exemple, l'intervalle 1 day and an hour l'intervalle peut être exprimée comme 25 HOUR ou 90000 SECOND.

Vous ne pouvez pas effectuer d'opérations arithmétiques avec Interval- tapez des valeurs, mais vous pouvez ajouter des intervalles de différents types par conséquent aux valeurs dans Date ou DateTime types de données. Exemple:

SELECT now() AS current_date_time, current_date_time + INTERVAL 4 DAY + INTERVAL 3 HOUR
┌───current_date_time─┬─plus(plus(now(), toIntervalDay(4)), toIntervalHour(3))─┐
│ 2019-10-23 11:16:28 │                                    2019-10-27 14:16:28 │
└─────────────────────┴────────────────────────────────────────────────────────┘

La requête suivante provoque une exception:

select now() AS current_date_time, current_date_time + (INTERVAL 4 DAY + INTERVAL 3 HOUR)
Received exception from server (version 19.14.1):
Code: 43. DB::Exception: Received from localhost:9000. DB::Exception: Wrong argument types for function plus: if one argument is Interval, then another must be Date or DateTime..

Voir Aussi