TIME_SUB |
Soustraire au temps |
|---|---|
| BigQuery | |
Syntaxe
| TIME_SUB(time_expression, INTERVAL INT_expr part) |
Paramètres
| Nom | Description |
|---|---|
| time_expression | Ce paramètre permet de spécifier l'expression de type TIME (heure) à partir de laquelle vous souhaitez soustraire une durée. C'est l'heure de départ pour le calcul. |
| INTERVAL INT_expr part | Ce paramètre permet de définir la durée à soustraire à la time_expression. Il se compose de trois parties : INTERVAL : Un mot-clef obligatoire signalant que vous spécifiez un intervalle. INT_expr : Ce paramètre permet de spécifier la valeur numérique entière représentant le nombre d'unités de temps à soustraire (par exemple, 15 pour 15 minutes, 3 pour 3 heures). <br> - part : Ce paramètre permet de spécifier l'unité de temps à soustraire (par exemple, MICROSECOND, MILLISECOND, SECOND, MINUTE, HOUR). La fonction retourne une nouvelle valeur de type TIME après avoir soustrait l'intervalle spécifié. Il est important de noter que le type TIME représente uniquement une heure de la journée, donc la soustraction d'unités de temps qui franchiraient une journée (comme les jours ou les semaines) n'est pas applicable et pourrait entraîner des comportements inattendus ou des erreurs. |
Description
Cette fonction permet de soustraire une quantité de temps à une expression d'heure existante.
Remarques
- Soustraction d'une durée à une heure précise : La fonction TIME_SUB est conçue pour retrancher un intervalle de temps à une expression de type TIME. Elle permet de calculer des heures antérieures à un instant donné, par exemple pour déterminer l'heure de début à partir d'une heure de fin connue.
- Intervalle défini de façon structurée : Le paramètre INTERVAL utilise une syntaxe claire : un entier suivi d'une unité (SECOND, MINUTE,...). Cela rend la fonction lisible et intuitive, surtout lorsqu'on manipule des durées précises dans des requêtes complexes.
- Limitation au type TIME (sans date) : La fonction ne gère que des valeurs de type TIME (heure uniquement, sans date). Elle ne peut donc pas être utilisée pour soustraire des jours ou passer à une date précédente. Une logique complémentaire avec des types DATETIME ou TIMESTAMP est nécessaire pour des calculs incluant le calendrier.
- Pas de dépassement négatif au-delà de 00:00:00 : Si vous soustrayez un intervalle supérieur à l'heure initiale (exemple TIME_SUB("01:00:00", INTERVAL 2 HOUR)), BigQuery renverra une erreur ou un comportement indéfini. Il n'y a pas de gestion automatique de "retour en arrière" sur la journée précédente.
- Retourne toujours une valeur de type TIME : La sortie de TIME_SUB reste dans le même type de données que l'entrée. Cela garantit la cohérence dans les opérations horaires sans affecter les champs DATE ou DATETIME.
- Idéal pour la gestion de créneaux horaires : Dans les systèmes de gestion de rendez-vous ou d'horaires (santé, transport,...), TIME_SUB permet de planifier automatiquement des créneaux en partant de l'heure de fin. Cela automatise la planification en retranchant les durées fixes.
- La granularité fine permet des soustractions précises : Grâce au support des unités comme MICROSECOND et MILLISECOND, la fonction est adaptée aux systèmes de mesure ou de journalisation nécessitant une très haute précision horaire.
- Soustraction simple à utiliser dans les requêtes SQL : La syntaxe de TIME_SUB est facilement intégrable dans des clauses SELECT, WHERE, ou même dans des sous-requêtes. Elle rend les calculs temporels plus concis par rapport à des alternatives utilisant des fonctions arithmétiques ou des conversions manuelles.
Dernière mise à jour : Jeudi, le 18 Juin 2020