Fonctions DateAdd, DateDiff et TimeZoneOffset
Function | S’applique à |
---|---|
DateAjouter | Applications Canvas Dataverse Colonnes de formules Flux Bureau Applications pilotées par modèle Power Platform CLI |
DateDiff | Applications Canvas Dataverse Colonnes de formules Flux Bureau Applications pilotées par modèle Power Platform CLI |
Décalage horaire | Applications Canvas Flux Bureau Applications pilotées par modèle Power Platform CLI |
Modifie une valeur de date/heure ou détermine la différence entre des valeurs de date/heure, et opère la conversion entre l’heure locale et l’heure UTC.
Description
La fonction DateAdd ajoute un nombre d’unités à une valeur de date/heure. Le résultat est une nouvelle valeur de date/heure. Vous pouvez également soustraire un nombre d’unités d’une valeur de date/heure en spécifiant une valeur négative.
La fonction DateDiff retourne la différence entre deux valeurs de date/heure. Le résultat est un nombre entier d’unités.
Pour les deux fonctions, les unités peuvent être TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters ou TimeUnit.Years. Par défaut, les deux fonctions utilisent TimeUnit.Days en tant qu’unités.
La fonction TimeZoneOffset retourne le nombre de minutes entre l’heure locale et l’heure UTC (temps universel coordonné) de l’utilisateur.
Vous pouvez utiliser DateAdd avec TimeZoneOffset pour opérer une conversion entre l’heure locale et l’heure UTC (temps universel coordonné) de l’utilisateur. L’ajout de TimeZoneOffset convertit une heure locale en heure UTC, et sa soustraction (en ajoutant la valeur négative) convertit une heure UTC en heure locale.
Consultez également Types de données Date, Time et DateTime et Utilisation des dates et des heures pour plus d’informations.
Syntaxe
DateAdd( DateTime, Addition [, Unités ] )
- DateTime - Obligatoire. Valeur de date/heure à utiliser.
- Ajout - Obligatoire. Nombre, exprimé en Unités, à ajouter à la valeur DateTime.
- Unités - Facultatif. Le type d’Unités à ajouter : TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters ou TimeUnit.Years. Si les unités ne sont pas spécifiées, TimeUnit.Days est utilisée.
DateDiff( StartDateTime, EndDateTime [, Unités ] )
- StartDateTime - Obligatoire. Valeur de date/heure de début.
- EndDateTime - Obligatoire. Valeur de date/heure de fin.
- Unités - Facultatif. Le type d’Unités à retirer : TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters ou TimeUnit.Years. Si les unités ne sont pas spécifiées, TimeUnit.Days est utilisée.
Décalage du fuseau horaire( [ DateHeure ] )
- DateHeure - Facultatif. Valeur de date/heure pour laquelle retourner le décalage. Par défaut, la date/heure actuelle est utilisée.
Exemples
Dans tous ces exemples, supposons que la date et l’heure sont 15 juillet 2013, 13:02.
DateAdd simple
Formule | Description | Résultat |
---|---|---|
Texte( DateAdd( Maintenant(), 3 ), "dd-mm-yyyy hh:mm" ) |
Ajoute trois jours (unités par défaut) à la valeur de date/heure actuelle. | "18-07-2013 13:02" |
Texte( DateAdd( Maintenant(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
Ajoute quatre heures à la valeur de date/heure actuelle. | "15-07-2013 17:02" |
Texte( DateAdd( Aujourd’hui(), 1, TimeUnit.Months ), "dd-mm-yyyy hh:mm" ) |
Ajoute un mois à la date actuelle, sans l’heure, car Today ne renvoie pas de composant d’heure. | "15-08-2013 00:00" |
Texte( DateAdd( Maintenant(), ‑30, TimeUnit.Minutes ), "dd-mm-yyyy hh:mm" ) |
Soustrait 30 minutes de la valeur de date/heure actuelle. | "15-07-2013 12:32" |
DateDiff simple
Formule | Description | Résultat |
---|---|---|
DateDiff(Maintenant(), DateValue("1/1/2014") ) | Retourne la différence entre les deux unités, exprimée en unités par défaut de TimeUnit.Days | 170 |
DateDiff(Maintenant(), DateValue("1/1/2014"), TimeUnit.Months ) | Retourne la différence entre les deux valeurs de TimeUnit.Months | 6 |
DateDiff(Maintenant(), Aujourd’hui(), TimeUnit.Minutes) | Retourne la différence entre la date/heure actuelle et la date actuelle (sans heure) en minutes. Étant donné que la valeur Now est postérieure à la valeur Today, le résultat est négatif. | -782 |
Différence de dates avec des résultats fractionnaires
La fonction DateDiff renvoie uniquement le nombre entier des unités soustraites et la précision est donnée dans l’unité spécifiée. Pour calculer la différence avec une précision plus élevée, utilisez une unité plus petite et convertissez le résultat de manière appropriée, comme dans les exemples ci-dessous.
Formule | Description | Résultat |
---|---|---|
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Heures ) | Les minutes/secondes sont ignorées, la différence est basée sur le temps jusqu’à l’heure. | 1 |
DateDiff(TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | Les minutes sont utilisées dans la différence et le résultat est divisé par 60 pour avoir la différence en heures. | 0.5 |
DateDiff(TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Secondes )/3600 | Les minutes et les secondes sont utilisées dans la différence et le résultat est divisé par 3600 pour avoir la différence en heures. | 0.51 |
Conversion en heure UTC
Pour convertir au format UTC (temps universel coordonné), ajoutez la valeur TimeZoneOffset pour l’heure indiquée.
Par exemple, imaginez que la valeur de date/heure soit 15 juillet 2013, 13:02 en heure d’été du Pacifique (UTC-7). Pour déterminer l’heure en heure UTC, utilisez la formule :
- DateAdd(Maintenant(), TimeZoneOffset(), TimeUnit.Minutes)
TimeZoneOffset est défini par défaut sur l’heure actuelle, vous n’avez donc pas besoin de lui passer un argument.
Pour afficher le résultat, utilisez la fonction Text avec le format dd-mm-yyyy hh:mm, qui retournera 15-07-2013 20:02.
Conversion de l’heure UTC
Pour convertir l’heure UTC, soustrayez TimeZoneOffset (en ajoutant le signe négatif) de l’heure indiquée.
Par exemple, imaginez que la valeur de date/heure UTC 15 juillet 2013, 20:02 est stockée dans une variable nommée StartTime. Pour régler l’heure en fonction du fuseau horaire de l’utilisateur, utilisez la formule :
- DateAdd(Heure de début, −TimeZoneOffset(Heure de début), TimeUnit.Minutes)
Notez le signe négatif devant TimeZoneOffset, qui indique de soustraire le décalage au lieu de l’ajouter.
Pour afficher le résultat, utilisez la fonction Text avec le format dd-mm-yyyy hh:mm, qui retourne 15-07-2013 13:02 si vous êtes dans le fuseau horaire Pacifique (heure d’été).