TIMESTAMP_TRUNC |
Tronque l'horodatage |
|---|---|
| BigQuery | |
Syntaxe
| TIMESTAMP_TRUNC(timestamp_expression, date_part[, time_zone]) |
Paramètres
| Nom | Description |
|---|---|
| timestamp_expression | Ce paramètre permet de spécifier l'expression de type TIMESTAMP que vous souhaitez tronquer. C'est l'horodatage original qui sera arrondi à la baisse. |
| date_part | Ce paramètre permet de spécifier l'unité de temps à laquelle l'horodatage doit être tronqué (par exemple, MICROSECOND, MILLISECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR). La fonction renverra un TIMESTAMP où toutes les unités de temps inférieures à la date_part spécifiée seront mises à zéro. |
| time_zone | Ce paramètre facultatif permet de spécifier le fuseau horaire à utiliser pour la troncation. C'est une chaîne de caractères représentant un nom de fuseau horaire valide (par exemple, 'America/New_York' ou 'UTC'). Si ce paramètre est omis, BigQuery utilise le fuseau horaire par défaut pour la session ou le projet (généralement UTC). Ce paramètre est crucial car la troncation par des unités comme DAY, WEEK, MONTH, QUARTER, YEAR dépend du point de départ de ces unités dans un fuseau horaire donné. |
Description
Cette fonction permet d'arrondir un horodatage selon la partie de précision spécifié.
Remarques
- Troncature utile pour l'agrégation temporelle : La fonction TIMESTAMP_TRUNC est couramment utilisée pour regrouper des données temporelles selon une granularité donnée, comme par jour, mois ou année. Elle est indispensable dans les rapports ou tableaux de bord pour visualiser des tendances temporelles cohérentes.
- Réduction des détails temporels avec précision contrôlée : En spécifiant un date_part (comme HOUR, DAY, ou MONTH), toutes les unités de temps inférieures sont mises à zéro. Par exemple, tronquer un horodatage au niveau DAY supprime les heures, minutes et secondes, le ramenant à minuit.
- Le fuseau horaire influe fortement sur le résultat : L'option time_zone est essentielle, notamment pour les rapports régionaux. Une même troncation au niveau du jour ne donnera pas le même résultat en UTC qu'en America/New_York, en raison du décalage horaire.
- Permet des regroupements homogènes dans les GROUP BY : En tronquant les horodatages avant de les grouper, on évite les décalages d'heure ou de minute pouvant séparer des données appartenant à la même période. Cela améliore la qualité des analyses temporelles.
- Comportement d'arrondi systématiquement vers le bas : La fonction arrondit toujours l'horodatage vers le début de l'unité choisie. Par exemple, un horodatage du 15 mars sera ramené au 1er mars si on tronque au niveau MONTH, ce qui peut avoir des implications analytiques.
- Compatible avec les autres types temporels via conversion : Bien qu'elle soit conçue pour les objets TIMESTAMP, on peut l'utiliser après conversion de types DATETIME ou STRING. Cela élargit ses cas d'usage dans les jeux de données hétérogènes.
- Utile pour la normalisation de colonnes de temps : Avant de faire des jointures temporelles, il peut être utile de tronquer les horodatages des deux tables pour les aligner précisément. Cela évite les mismatches dus aux fractions de seconde ou à l'heure.
- S'intègre parfaitement dans des requêtes analytiques complexes : TIMESTAMP_TRUNC est fréquemment combinée avec d'autres fonctions analytiques comme COUNT, AVG, ou SUM pour créer des indicateurs temporels cohérents. Elle facilite la génération d'indicateurs par période (par heure, semaine, trimestre...).
Dernière mise à jour : Jeudi, le 18 Juin 2020