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-: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 ».
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page documents all conversion functions in AJO journey expressions, explaining how to transform values between types such as string, integer, decimal, boolean, date, datetime, and duration.
Intents:
- Convert a string or epoch integer to a timezone-aware datetime using
toDateTime - Convert a string or datetime to a timezone-less datetime using
toDateTimeOnly - Extract a date-only value (year-month-day) from a string or datetime using
toDateOnly - Cast a value to an integer, decimal, or boolean using
toInteger,toDecimal, ortoBool - Serialize any value to its string representation using
toString - Convert a string or millisecond integer to a duration using
toDuration
Glossary:
- dateTime: A datetime value that includes timezone offset information (product-specific)
- dateTimeOnly: A datetime value with no timezone information (product-specific)
- dateOnly: A date value representing year-month-day with no time component (product-specific)
- duration: A time period expressed in ISO-8601 format (e.g., PT10H) (product-specific)
- epoch milliseconds: Unix timestamp expressed in milliseconds since 1970-01-01T00:00:00Z
Guardrails:
- The timezone argument in
toDateTimemust be a string constant — field references and dynamic expressions are not allowed - String inputs to
toDateTimeandtoDateTimeOnlymust follow ISO-8601 format; malformed strings return null without an error toDateTimewith an epoch integer expects milliseconds; multiply seconds-based timestamps by 1000 before passingtoBoolreturnstrueonly for the exact string"true"; strings like"1","yes", or"TRUE"returnfalse
Terminology:
- Canonical name: Conversion functions — Acronym: none — variants: type casting functions, type conversion functions
- Synonyms: “toDateTime” = “convert to datetime with timezone”; “toDateTimeOnly” = “convert to datetime without timezone”
- Do not confuse: “toDateTime” (timezone-aware) ≠ “toDateTimeOnly” (no timezone)
- Do not confuse: “toDateOnly” (date only, no time) ≠ “toDateTime” (date and time with timezone)
FAQ:
- Q: When should I use
toDateTimeversustoDateTimeOnly? — UsetoDateTimewhen timezone information matters (e.g., scheduling or cross-region comparisons); usetoDateTimeOnlywhen only the local date-time is relevant and timezone can be ignored. - Q: Why does
toBool("TRUE")return false? —toBoolonly recognizes the exact lowercase string"true"; all other string values including"TRUE"or"yes"return false. - Q: How do I convert a Unix timestamp in seconds to a dateTime? — Multiply the seconds value by 1000 to get milliseconds, then pass it to
toDateTime, e.g.,toDateTime(myField * 1000). - Q: Can the timezone in
toDateTimebe read from a profile attribute? — No, the timezone ID must be a string constant; field references and expressions are not supported. - Q: What format does
toDurationaccept as a string? — ISO-8601 duration format, e.g.,"PT10H"for 10 hours or"P1DT2H"for 1 day and 2 hours.