DATETIME_SUB |
Soustraire la date et heure |
|---|---|
| BigQuery | |
Syntaxe
| DATETIME_SUB(datetime_expression, INTERVAL INT64_expr part) |
Paramètres
| Nom | Description |
|---|---|
| datetime_expression | Ce paramètre permet de spécifier l'expression de type DATETIME de laquelle la quantité de temps doit être soustraite. |
| INT64_expr | Ce paramètre permet de spécifier la quantité entière à soustraire de l'datetime_expression. Cette valeur doit être un entier (INT64). |
| part | Ce paramètre permet de spécifier l'unité de temps (par exemple, HOUR, DAY, MONTH, YEAR) de laquelle la quantité (INT64_expr) doit être soustraite. Les parties de temps valides incluent MICROSECOND, MILLISECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR. |
Description
Cette fonction permet de soustraire une quantité de temps à une expression de date et heure existante.
Remarques
- Soustraction directe sur une valeur de type DATETIME : La fonction DATETIME_SUB permet de retrancher un intervalle de temps d'une date et heure précises, sans considérer les fuseaux horaires. C'est une opération simple mais puissante pour effectuer des calculs de dates passées à partir d'un point temporel donné.
- Utilise des unités de temps précises pour plus de flexibilité : Le paramètre part permet de définir l'unité à retrancher, ce qui rend la fonction très adaptable. On peut aussi bien retrancher quelques secondes que plusieurs années, selon les besoins de l'analyse temporelle ou du traitement de données.
- Complémentaire de DATETIME_ADD, mais dans le sens inverse : DATETIME_SUB fonctionne de manière opposée à DATETIME_ADD. Elle est particulièrement utile pour obtenir une date passée, comme "il y a 30 jours", ou pour ajuster dynamiquement des limites temporelles dans les requêtes BigQuery.
- Idéale pour la gestion de périodes glissantes : Dans les rapports ou dashboards, on peut l'utiliser pour calculer les bornes d'une période (par exemple : "depuis 7 jours", "les 3 dernières heures"), en générant dynamiquement des plages temporelles à partir de la date actuelle ou d'une référence.
- Opère sur le type DATETIME, donc sans information de fuseau horaire : Contrairement aux fonctions basées sur TIMESTAMP, DATETIME_SUB ne prend pas en compte le fuseau horaire. Cela signifie que les calculs sont basés uniquement sur la date et l'heure civile, ce qui évite les effets de décalage liés aux conversions horaires.
- Le paramètre d'intervalle doit être entier, pas de décimales possibles : Le paramètre INT64_expr doit être un entier, ce qui implique que l'on ne peut pas soustraire une demi-heure ou une fraction de jour. Pour des besoins plus précis, il faut combiner cette fonction avec d'autres manipulations (comme la conversion vers TIMESTAMP ou FLOAT).
- Utile pour les filtres dynamiques dans les requêtes SQL : On l'utilise souvent dans des clauses WHERE pour filtrer les enregistrements plus récents qu'un certain seuil. Par exemple, WHERE date_creation >= DATETIME_SUB(CURRENT_DATETIME(), INTERVAL 30 DAY) permet de cibler les données du dernier mois.
- Évite les erreurs de manipulation de chaînes de caractères temporelles : Plutôt que d'utiliser des opérations complexes sur des chaînes de date ou des formats manuels, DATETIME_SUB simplifie la soustraction temporelle de manière fiable, claire et structurée, tout en préservant le typage strict de BigQuery.
Dernière mise à jour : Jeudi, le 18 Juin 2020