TIMESTAMP_DIFF |
Différence d'horodatage |
|---|---|
| BigQuery | |
Syntaxe
| TIMESTAMP_DIFF(timestamp_expression1, timestamp_expression2, date_part) |
Paramètres
| Nom | Description |
|---|---|
| timestamp_expression1 | Ce paramètre permet de spécifier le premier horodatage (TIMESTAMP) à utiliser pour le calcul de la différence. C'est généralement l'horodatage le plus récent ou celui dont vous voulez soustraire le second. |
| timestamp_expression2 | Ce paramètre permet de spécifier le deuxième horodatage (TIMESTAMP) à utiliser pour le calcul de la différence. C'est généralement l'horodatage le plus ancien ou celui qui est soustrait du premier. |
| date_part | Ce paramètre permet de spécifier l'unité de temps dans laquelle vous souhaitez que la différence soit exprimée (par exemple, MICROSECOND, MILLISECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR). La fonction renvoie un nombre entier (INT64) représentant la différence entre les deux horodatages dans l'unité spécifiée. |
Description
Cette fonction permet de demander la différence entre 2 horodatages selon l'intervalle de temps spécifié.
Remarques
- Fonction dédiée au calcul d'écart temporel précis : TIMESTAMP_DIFF permet de mesurer le temps écoulé entre deux horodatages. Elle est essentielle pour l'analyse de durée, comme mesurer le temps entre deux événements ou le délai de traitement entre deux étapes.
- L'unité de retour est personnalisable via date_part : On peut choisir l'unité dans laquelle la différence est exprimée (SECOND, HOUR, DAY,...). Cela offre une grande souplesse selon le contexte : un rapport horaire, un décompte de jours, ou encore une comparaison d'années.
- Résultat toujours un entier de type INT64 : La fonction retourne un entier, ce qui signifie que les parties décimales sont tronquées. Par exemple, une différence de 1,9 jour sera renvoyée comme 1 si DAY est spécifié. Il faut donc ajuster le date_part selon le niveau de précision souhaité.
- L'ordre des horodatages influence le signe du résultat : Si timestamp_expression1 est plus récent que timestamp_expression2, le résultat sera positif. Sinon, il sera négatif. Il est donc crucial de bien ordonner les deux paramètres selon le sens temporel attendu.
- Pratique pour générer des indicateurs de durée : Cette fonction est utile dans des tableaux de bord ou rapports analytiques pour créer des métriques telles que "temps écoulé depuis la création", "durée d'inactivité", ou "délai moyen de traitement", en comparant des horodatages entreposés.
- Compatible avec des expressions dynamiques : On peut combiner TIMESTAMP_DIFF avec CURRENT_TIMESTAMP() ou d'autres fonctions pour mesurer un écart en temps réel. Par exemple : TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), date_inscription, DAY) permet de savoir depuis combien de jours un utilisateur est inscrit.
- Différence basée sur les limites de l'unité spécifiée : Le calcul s'appuie sur des frontières d'unités, pas sur la valeur absolue. Par exemple, deux dates à une minute d'écart mais dans deux jours calendaires différents renverront une différence de 1 jour si DAY est spécifié, ce qui peut surprendre.
- Non équivalent à une soustraction simple de dates : Contrairement à une simple soustraction timestamp1 - timestamp2, cette fonction comprend une logique liée à l'unité d'écart et retourne directement un entier dans l'unité souhaitée, ce qui évite des conversions manuelles complexes.
Dernière mise à jour : Jeudi, le 18 Juin 2020