DATETIME |
Date et heure |
|---|---|
| BigQuery | |
Syntaxe
| DATETIME(year, month, day, hour, minute, second) |
| DATETIME(date_expression, time_expression) |
| DATETIME(timestamp_expression [, timezone]) |
Paramètres
| Nom | Description |
|---|---|
| year | Ce paramètre permet de spécifier l'année de la date et l'heure souhaitées sous forme d'un entier (INT64). Utilisé dans la syntaxe DATETIME(year, month, day, hour, minute, second). |
| month | Ce paramètre permet de spécifier le mois de la date et l'heure souhaitées sous forme d'un entier (INT64), où 1 représente Janvier et 12 représente Décembre. Utilisé dans la syntaxe DATETIME(year, month, day, hour, minute, second). |
| day | Ce paramètre permet de spécifier le jour du mois de la date et l'heure souhaitées sous forme d'un entier (INT64). Utilisé dans la syntaxe DATETIME(year, month, day, hour, minute, second). |
| hour | Ce paramètre permet de spécifier l'heure (format 24 heures) de la date et l'heure souhaitées sous forme d'un entier (INT64), de 0 à 23. Utilisé dans la syntaxe DATETIME(year, month, day, hour, minute, second). |
| minute | Ce paramètre permet de spécifier les minutes de la date et l'heure souhaitées sous forme d'un entier (INT64), de 0 à 59. Utilisé dans la syntaxe DATETIME(year, month, day, hour, minute, second). |
| second | Ce paramètre permet de spécifier les secondes de la date et l'heure souhaitées sous forme d'un entier (INT64) ou FLOAT64 (pour les fractions de seconde), de 0 à 59.999999. Utilisé dans la syntaxe DATETIME(year, month, day, hour, minute, second). |
| date_expression | Ce paramètre permet de spécifier une expression de type DATE qui fournira la composante date pour le DATETIME résultant. Utilisé dans la syntaxe DATETIME(date_expression, time_expression). |
| time_expression | Ce paramètre permet de spécifier une expression de type TIME qui fournira la composante heure pour le DATETIME résultant. Utilisé dans la syntaxe DATETIME(date_expression, time_expression). |
| timestamp_expression | Ce paramètre permet de spécifier une expression de type TIMESTAMP (horodatage avec fuseau horaire) dont la date et l'heure civiles seront extraites pour créer une valeur DATETIME (qui, par définition, n'a pas de fuseau horaire). Utilisé dans la syntaxe DATETIME(timestamp_expression [, timezone]). |
| timezone | Ce paramètre facultatif, utilisé avec timestamp_expression, permet de spécifier le fuseau horaire à considérer pour l'extraction de la date et de l'heure civiles à partir du TIMESTAMP. Si non spécifié, le fuseau horaire par défaut du projet (UTC) est utilisé. Le fuseau horaire doit être une chaîne de caractères valide (par exemple, 'America/Los_Angeles' ou '+02:00'). |
Description
Cette fonction permet de demander une date en se basant sur un horodatage, une année, mois et jour ou une date et heure.
Remarques
- Permet de combiner la date et l'heure sans notion de fuseau horaire : La fonction DATETIME() produit un type DATETIME représentant une date et une heure sans fuseau horaire. Cela signifie que l'heure indiquée est interprétée telle quelle, sans ajustement UTC ou local, ce qui peut être utile dans des cas comme des horaires de planification fixes ou des événements sans décalage temporel.
- Offre plusieurs syntaxes pour plus de flexibilité : DATETIME() accepte aussi bien des paramètres individuels (year, month, day,...) que des expressions composées (DATE, TIME, ou TIMESTAMP). Cette souplesse permet de facilement adapter la fonction à la forme des données disponibles, qu'elles soient atomiques ou déjà structurées.
- L'extraction à partir d'un TIMESTAMP nécessite une attention particulière au fuseau horaire : Quand on utilise DATETIME(timestamp_expression, timezone), BigQuery convertit l'horodatage dans le fuseau horaire spécifié avant d'extraire la date et l'heure. Cela garantit que la valeur extraite reflète bien l'heure civile attendue, mais peut prêter à confusion si le fuseau est négligé.
- Idéal pour les situations où le fuseau horaire est inutile ou non pertinent : Le type DATETIME est utile pour des cas où la date et l'heure sont fixes, comme un horaire de réunion hebdomadaire ou une échéance à minuit, indépendamment de tout décalage horaire. Cela évite les effets secondaires liés aux conversions UTC.
- Compatible avec les types DATE et TIME : La fonction peut être utilisée pour fusionner des champs de types DATE et TIME, ce qui est pratique si ces composantes sont entreposés séparément dans des colonnes différentes. Cela permet de reconstituer un DATETIME complet pour effectuer des comparaisons ou des regroupements temporels.
- Utile dans la normalisation ou la transformation de données temporelles : Si les données sources sont en TIMESTAMP (avec fuseau horaire), on peut les transformer avec DATETIME() pour éliminer le contexte de fuseau et uniformiser les traitements. Cela est utile dans des rapports ou calculs où seule l'heure locale civile importe.
- La granularité des secondes permet une précision au sous-seconde près : Avec le paramètre second accepté sous forme FLOAT64, DATETIME() permet de créer des horodatages très précis, incluant des fractions de seconde. Cette précision est essentielle dans certains cas comme les enregistrements de transactions ou de capteurs.
- Peut être comparé, trié ou formaté comme tout type temporel standard : Une fois le DATETIME construit, il peut être utilisé dans des requêtes SQL pour trier des événements, filtrer des plages horaires, ou regrouper par intervalles. Il s'intègre naturellement aux autres fonctions temporelles de BigQuery, comme FORMAT_DATETIME ou EXTRACT.
Dernière mise à jour : Jeudi, le 18 Juin 2020