DATE_DIFF |
Différence de date |
|---|---|
| BigQuery | |
Syntaxe
| DATE_DIFF(date_expression, date_expression, date_part) |
Paramètres
| Nom | Description |
|---|---|
| date_expression_1 | Ce paramètre permet de spécifier la première expression de type DATE (la date la plus récente) pour laquelle la différence doit être calculée. |
| date_expression_2 | Ce paramètre permet de spécifier la deuxième expression de type DATE (la date la plus ancienne) par rapport à laquelle la différence doit être calculée. |
| date_part | Ce paramètre permet de spécifier l'unité de temps dans laquelle la différence doit être retournée (par exemple, DAY, WEEK, MONTH, YEAR). Les parties de temps valides incluent DAY, WEEK, WEEK(<WEEKDAY>), MONTH, QUARTER, YEAR. La fonction calcule le nombre entier de ces unités entre les deux dates. |
Description
Cette fonction permet de demander la différence entre 2 dates selon l'intervalle de temps spécifié.
Remarques
- Permet de mesurer des écarts temporels précis entre deux dates : DATE_DIFF calcule la différence entre deux dates, exprimée dans une unité de temps donnée. C'est particulièrement utile pour mesurer la durée entre deux événements, comme la date d'inscription et la date d'expiration.
- Les résultats sont des entiers, arrondis vers zéro : La fonction retourne un entier, ce qui signifie qu'elle ne considère pas les valeurs partielles. Par exemple, la différence entre le 1er janvier et le 29 janvier, en mois, renverra 0 car un mois complet n'a pas été écoulé.
- Le choix de date_part change radicalement le sens du résultat : En spécifiant DAY, MONTH, YEAR,..., on adapte le niveau de granularité. Cela permet une analyse flexible : par exemple, une différence de 730 jours peut aussi être interprétée comme 24 mois ou 2 années, selon les besoins métier.
- L'ordre des dates impacte le résultat (positif ou négatif) : La fonction soustrait date_expression_2 de date_expression_1. Si la première date est antérieure à la seconde, le résultat sera négatif, ce qui permet de détecter si un événement est en avance ou en retard par rapport à une date de référence.
- Indépendante des heures et fuseaux horaires : Puisqu'elle travaille uniquement avec des objets de type DATE, DATE_DIFF ignore les heures, minutes, secondes et fuseaux horaires. Cela garantit une cohérence totale pour des données purement calendaires.
- Peut être utilisée pour des regroupements ou filtres dynamiques : Il est courant d'utiliser DATE_DIFF dans une clause WHERE pour filtrer les événements récents, ou dans un CASE pour classer des utilisateurs selon leur ancienneté, comme :
- CASE
- WHEN DATE_DIFF(CURRENT_DATE(), signup_date, YEAR) >= 5 THEN 'ancien'
- END
- Gère correctement les sauts de mois et les années bissextiles : Quand on mesure des différences en MONTH ou YEAR, BigQuery prend en compte les variations du calendrier, comme février avec 28 ou 29 jours. Cela garantit une précision temporelle cohérente avec les règles calendaires.
- Peut comparer des dates fixes ou des colonnes dynamiques : DATE_DIFF accepte aussi bien des constantes (DATE '2020-01-01') que des colonnes dans une table. Cela le rend pratique pour comparer des colonnes entre elles ou avec une date de référence calculée (comme CURRENT_DATE()).
Dernière mise à jour : Jeudi, le 18 Juin 2020