Fonctions de conversion conversion-functions
Les fonctions de conversion vous permettent de transformer des données d’un type en un autre dans vos expressions de parcours. Ces fonctions sont essentielles pour garantir la compatibilité des données et une gestion appropriée des types de données lorsque vous travaillez avec différentes sources de données et opérations.
Utilisez des fonctions de conversion lorsque vous devez :
- Convertir les valeurs de chaîne en types numériques, booléens ou dates (toInteger, toDecimal, toBool)
- Transformer les dates et heures entre différents formats et représentations (toDateTime, toDateTimeOnly, toDateOnly)
- Convertir les valeurs numériques entre les types entier et décimal (toInteger, toDecimal)
- Convertir les valeurs au format chaîne (toString) ou en durée (toDuration)
- Assurer la compatibilité des types pour les comparaisons et les opérations
- Traiter les données provenant de sources externes qui peuvent avoir différents formats de type
Chaque fonction de conversion gère automatiquement les règles et les cas Edge spécifiques au type, ce qui rend la transformation des données plus fiable et plus prévisible dans vos expressions de parcours.
Référence rapide quick-reference
toDateTime lorsque le fuseau horaire est important (par exemple, pour la planification des messages, la comparaison des horodatages d’événement entre les régions). Utilisez toDateTimeOnly lorsque seule la date-heure locale est pertinente et que le fuseau horaire peut être ignoré (par exemple, en comparant les dates du calendrier dans une condition).Pièges courants pitfalls
- Le fuseau horaire doit être une constante de chaîne — L’argument de fuseau horaire dans
toDateTimene peut pas être une référence de champ ou une expression dynamique. Transmettez toujours une chaîne littérale telle que"UTC"ou"Europe/Paris". - Format ISO-8601 requis pour les entrées de chaîne — Lors de la transmission d’une chaîne à
toDateTimeoutoDateTimeOnly, assurez-vous qu’elle respecte le format ISO-8601 (par exemple,"2023-08-18T23:17:59.123Z"). Les chaînes incorrectes renvoient la valeur null sans erreur. - Les valeurs de l’époque sont exprimées en millisecondes —
toDateTime(1560762190189)s’attend à des millisecondes. Si votre source fournit des horodatages Unix en secondes, multipliez-les par 1 000 en premier (par exemple,toDateTime(myField * 1000)). - toBool avec des chaînes inattendues —
toBoolrenvoietrueuniquement si la valeur de la chaîne est exactement"true". Toute autre chaîne (y compris"1","yes"et"TRUE") renvoiefalse.
toBool toBool
Convertit une valeur d’argument en valeur booléenne, selon son type.
- À partir d’une chaîne : la fonction tente de convertir la valeur de chaîne en valeur booléenne. Renvoie true si la valeur de chaîne est « true », sinon renvoie false.
- À partir d’une valeur numérique : renvoie true si la valeur numérique n’est pas égale à 0, sinon renvoie false.
toBool(<parameter>)- décimal
- booléen
- chaîne
- entier
toBool(<decimal>)
toBool(<boolean>)
toBool(<string>)
toBool(<integer>)
Renvoie une valeur booléenne.
toBool("true")
toBool(1)
Renvoie true.
toBool("this is not a boolean")
Renvoie false.
toDateOnly toDateOnly
Convertit un argument en une valeur de type dateOnly. Pour plus d’informations sur les types de données, consultez cette section.
toDateOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Paramètre | Type |
| Représentation sous forme de chaîne d’une date au format « AAAA-MM-JJ » (format XDM). Prend également en charge le format ISO-8601 : seule la partie full-date est prise en compte (voir RFC 3339, section 5.6 | chaîne |
| date et heure | dateTime |
| date et heure sans prise en compte du fuseau horaire | dateTimeOnly |
| valeur entière epoch en millisecondes | entier |
toDateOnly(<dateTime>)
toDateOnly(<dateTimeOnly>)
toDateOnly(<string>)
toDateOnly(<integer>, <integer>, <integer>)
Renvoie une valeur de type dateOnly.
toDateOnly("2023-08-18")
toDateOnly("2023-08-18T00:00:00.000Z")
toDateOnly("2023-08-18T00:00:00")
renvoient tous un objet dateOnly représentant 18/08/2023.
toDateOnly(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate})
Renvoie une valeur dateOnly.
toDateTime toDateTime
Convertit les paramètres en une valeur de date et d’heure, selon leurs types.
toDateTime(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
|---|---|
| Paramètre | Description |
| chaîne | date et heure au format ISO-8601. Représentation sous forme de chaîne dateTime avec des informations de fuseau horaire |
| chaîne | identifiant de fuseau horaire Identifiant de fuseau horaire (par exemple, « UTC », « Europe/Paris ») |
| dateOnly | représente une valeur de date et d’heure sans fuseau horaire, sous la forme année-mois-jour. |
| dateTimeOnly | représente une valeur dateTime sans fuseau horaire, sous la forme année-mois-jour-heure-minute-seconde-milliseconde. |
| entier | valeur entière epoch en millisecondes |
toDateTime(<string>)
toDateTime(<string>, <dateOnly>)
toDateTime(<string>, <dateTimeOnly>)
toDateTime(<integer>)
Renvoie une valeur dateTime.
toDateTime("2023-08-18T23:17:59.123Z")
Renvoie 2023-08-18T23:17:59.123Z.
La chaîne ISO-8601 inclut déjà des informations sur le fuseau horaire.
toDateTime("Europe/Paris", toDateOnly("2023-08-18"))
Renvoie 2023-08-18T00:00:00.000+02:00
Vous créez ainsi une valeur dateTime en combinant un fuseau horaire avec une valeur de date seule. L’heure est définie sur minuit (00:00:00) dans le fuseau horaire spécifié.
toDateTime("UTC", toDateTimeOnly("2023-08-18T23:17:59.123"))
Renvoie 2023-08-18T23:17:59.123Z.
Vous créez ainsi une valeur dateTime en appliquant un fuseau horaire à une valeur dateTimeOnly (qui ne contient aucune information de fuseau horaire).
toDateTime(1560762190189)
Renvoie 2019-06-17T09:03:10.189Z
Convertit une date et une heure Unix en millisecondes en une valeur dateTime.
toDateTimeOnly toDateTimeOnly
Convertit une valeur d’argument en une date et une heure sans prise en compte du fuseau horaire.
toDateTimeOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure au format ISO-8601 ou AAAA-MM-JJ (format de date XDM) | chaîne |
| date et heure | dateTime |
toDateTimeOnly(<dateTime>)
toDateTimeOnly(<string>)
Renvoie une date et une heure sans prendre en compte le fuseau horaire.
toDateTimeOnly ("2023-08-18")
Renvoie une valeur dateTime représentant 2023-08-18T00:00:00.000.
toDateTimeOnly(now())
toDecimal toDecimal
Convertit une valeur d’argument en valeur décimale, selon son type.
toDecimal(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Paramètre | Description |
| chaîne | convertit la valeur de la chaîne en valeur décimale |
| dateTime | convertit la date en millisecondes (nombre de millisecondes depuis le début de l’époque) |
| booléen | convertit la valeur booléenne en 1 si true, 0 si false |
| entier | convertit en décimal (exemple : 1 devient 1,0) |
toDecimal(<integer>)
toDecimal(<decimal>)
toDecimal(<string>)
toDecimal(<boolean>)
Renvoie une valeur décimale.
toDecimal("4.0")
Renvoie 4.0.
toDuration toDuration
Convertit une valeur d’argument en une durée. Pour plus d’informations sur les types de données, consultez cette page.
toDuration(<parameter>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Description |
| chaîne | Formats basés sur le format de durée ISO-8601 PnDTnHnMn.nS pour une durée du jour considérée comme durant exactement 24 heures |
| entier | nombre de millisecondes |
Si l’expression contient une chaîne : les formats acceptés sont basés sur le format de durée ISO-8601 PnDTnHnMn.nS pour une durée du jour considérée comme durant exactement 24 heures.
La chaîne commence par un signe facultatif, indiqué par le symbole ASCII négatif ou positif. S’il est négatif, toute la période est annulée. Vient ensuite la lettre ASCII « P », en majuscule ou en minuscule. Viennent ensuite quatre sections, chacune constituée d’un nombre et d’un suffixe. Les sections contiennent les suffixes en ASCII « D », « H », « M » et « S » pour les jours, heures, minutes et secondes, acceptés en majuscules ou en minuscules. Les suffixes doivent se succéder dans l’ordre. La lettre ASCII « T » doit apparaître avant la première occurrence, le cas échéant, d’une section d’heure, de minute ou de seconde. L’une au moins des quatre sections doit être présente, et si la lettre « T » est présente, elle doit être suivie d’au moins une section. La partie numérique de chaque section doit contenir un ou plusieurs chiffres ASCII. Le nombre peut être précédé du symbole ASCII négatif ou positif. Le nombre de jours, heures et minutes doit être converti en nombre long. Le nombre de secondes doit être converti en nombre long avec la fraction facultative. La virgule peut être un point ou une virgule. La partie fractionnaire peut comporter de zéro à 9 chiffres.
toDuration(<string>)
toDuration(<integer>)
Renvoie une durée.
toDuration("PT10H")
Renvoie une durée de 10 heures.
toDuration("PT4S")
Renvoie une durée de 4 s.
toDuration(4000)
Renvoie une durée de 4 s.
toInteger toInteger
Convertit une valeur d’argument en nombre entier.
toInteger(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Paramètre | Description |
| chaîne | convertit la valeur de la chaîne en nombre entier |
| dateTime | convertit la date en millisecondes (nombre de millisecondes depuis le début de l’époque) |
| décimal | convertit la valeur d’argument en nombre entier en supprimant la partie décimale (exemple : 1,5 devient 1) |
| booléen | convertit la valeur booléenne en 1 si true, 0 si false |
toInteger(<dateTime>)
toInteger(<decimal>)
toInteger(<integer>)
toInteger(<string>)
toInteger(<boolean>)
Renvoie un nombre entier.
toInteger("4")
Renvoie 4.
toString toString
Convertit une valeur d’argument en valeur de chaîne, selon son type. Pour plus d’informations sur les types de données, consultez cette page.
toString(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 | |
|---|---|
| Paramètre | Description |
| dateTime | Convertit la date au format UTC |
| dateTimeOnly | Convertit la date au format UTC |
| durée | Convertit le paramètre dans le nombre de millisecondes correspondant sous forme de chaîne |
| Entier | Convertit la valeur en représentation sous forme de chaîne (1 devient « 1 »). |
| Décimal | Convertit la valeur en représentation sous forme de chaîne (1,5 devient « 1,5 »). |
| booléen | Convertit la valeur booléenne en chaîne « true » si true, en chaîne « false » si false |
toString(<dateTimeOnly>)
toString(<dateTime>)
toString(<duration>)
toString(<boolean>)
toString(<integer>)
toString(<decimal>)
Renvoie une chaîne.
toString(4)
Renvoie « 4 ».
toString(#{ExperiencePlatform.test_date.person.birthDate}))
Renvoie la représentation sous forme de chaîne du champ dateOnly (champ de date XDM) donné, par exemple « 18/08/2023 ».
toString(toDuration(1520))
Renvoie « PT1.52S ».
Cette section contient des connaissances structurées destinées à soutenir l’interprétation, la récupération et la réponse aux questions liées à ce sujet.
Pour une compréhension totale, ces informations doivent être combinées avec la documentation de cette page. Aucune des sources n’est conçue pour être autonome. La page décrit la fonctionnalité, tandis que cette section fournit un contexte supplémentaire qui permet de clarifier la terminologie, l’intention, l’applicabilité et les contraintes.
- TL;DR: Cette page documente toutes les fonctions de conversion dans les expressions de parcours AJO, en expliquant comment transformer des valeurs entre des types tels que chaîne, entier, décimal, booléen, date, datetime et durée.
Intentions:
- Convertissez une chaîne ou un entier epoch en une heure prenant en compte le fuseau horaire à l’aide de
toDateTime - Convertir une chaîne ou datetime en datetime sans fuseau horaire à l’aide de
toDateTimeOnly - Extrayez une valeur de date seule (année-mois-jour) d’une chaîne ou de datetime à l’aide de
toDateOnly - Convertissez une valeur en entier, décimal ou booléen en utilisant
toInteger,toDecimaloutoBool - Sérialisez n’importe quelle valeur dans sa représentation sous forme de chaîne à l’aide de
toString - Convertir une chaîne ou un entier en millisecondes en une durée à l’aide de
toDuration
Glossaire:
- dateTime : valeur datetime qui inclut des informations de décalage de fuseau horaire (spécifiques au produit)
- dateTimeOnly : valeur datetime sans informations de fuseau horaire (spécifique au produit)
- dateOnly : valeur de date représentant l’année-mois-jour sans composant temporel (spécifique au produit)
- durée : période exprimée au format ISO-8601 (par exemple, PT10H) (spécifique au produit)
- epoch milliseconds : horodatage Unix exprimé en millisecondes depuis 1970-01-01T00:00:00Z
Mécanismes de sécurisation :
- L’argument de fuseau horaire dans
toDateTimedoit être une constante de chaîne — les références aux champs et les expressions dynamiques ne sont pas autorisées - Les entrées de chaîne dans
toDateTimeettoDateTimeOnlydoivent respecter le format ISO-8601 ; les chaînes incorrectes renvoient la valeur null sans erreur toDateTimeavec un entier epoch attend des millisecondes ; multipliez les horodatages basés sur les secondes par 1 000 avant de passertoBoolrenvoietrueuniquement pour le"true"de chaîne exact ; les chaînes telles que"1","yes"ou"TRUE"renvoientfalse
Terminologie:
- Nom canonique : Fonctions de conversion — Acronyme : none — variantes : fonctions de conversion de type, fonctions de conversion de type
- Synonymes : « toDateTime » = « convert to datetime with timezone »; « toDateTimeOnly » = « convert to datetime without timezone »
- Ne pas confondre : « toDateTime » (compatible avec les fuseaux horaires) ≠ « toDateTimeOnly » (pas de fuseau horaire)
- Ne pas confondre : « toDateOnly » (date uniquement, pas d’heure) ≠ « toDateTime » (date et heure avec fuseau horaire)
FAQ:
- Q : Quand dois-je utiliser
toDateTimeplutôt quetoDateTimeOnly? — Utilisez destoDateTimelorsque les informations sur le fuseau horaire sont importantes (par exemple, planification ou comparaisons interrégions) ; utilisez destoDateTimeOnlylorsque seule la date-heure locale est pertinente et que le fuseau horaire peut être ignoré. - Q : Pourquoi
toBool("TRUE")renvoie-t-il false ? —toBoolne reconnaît que la"true"exacte de la chaîne en minuscules ; toutes les autres valeurs de chaîne, y compris"TRUE"ou"yes", renvoient la valeur false. - Q : Comment convertir un horodatage Unix en secondes en dateTime ? — Multipliez la valeur secondes par 1000 pour obtenir les millisecondes, puis transmettez-la à
toDateTime, par exempletoDateTime(myField * 1000). - Q : Le fuseau horaire dans
toDateTimepeut-il être lu à partir d’un attribut de profil ? — Non, l’ID de fuseau horaire doit être une constante de chaîne ; les références aux champs et les expressions ne sont pas prises en charge. - Q : Quel format accepte-
toDurationcomme chaîne ? — format de durée ISO-8601, par exemple"PT10H"pour 10 heures ou"P1DT2H"pour 1 jour et 2 heures.