Funzioni di conversione conversion-functions
Le funzioni di conversione consentono di trasformare i dati da un tipo all’altro all’interno delle espressioni di percorso. Queste funzioni sono essenziali per garantire la compatibilità dei dati e una corretta gestione del tipo quando si lavora con origini dati e operazioni diverse.
Utilizza le funzioni di conversione quando devi:
- Converti i valori stringa in tipi numerici, booleani o di data (toInteger, toDecimal, toBool)
- Trasforma date e ore tra formati e rappresentazioni diversi (toDateTime, toDateTimeOnly, toDateOnly)
- Cast valori numerici tra tipi integer e decimal (toInteger, toDecimal)
- Converti i valori in formato stringa (toString) o durata (toDuration)
- Garantire la compatibilità dei tipi per confronti e operazioni
- Elabora dati provenienti da origini esterne che possono avere formati di tipo diversi
Ogni funzione di conversione gestisce in automatico regole e casi edge specifici del tipo, rendendo la trasformazione dei dati più affidabile e prevedibile nelle espressioni di percorso.
Riferimento rapido quick-reference
toDateTime quando il fuso orario è importante (ad esempio, pianificazione dei messaggi, confronto di marche temporali evento tra aree geografiche). Utilizzare toDateTimeOnly quando è rilevante solo la data/ora locale e il fuso orario può essere ignorato (ad esempio, confrontando le date del calendario in una condizione).Insidie comuni pitfalls
- Il fuso orario deve essere una costante stringa. L’argomento del fuso orario in
toDateTimenon può essere un riferimento di campo o un’espressione dinamica. Passare sempre una stringa letterale come"UTC"o"Europe/Paris". - Formato ISO-8601 richiesto per gli input di stringhe — Quando si passa una stringa a
toDateTimeotoDateTimeOnly, assicurarsi che segua il formato ISO-8601 (ad esempio,"2023-08-18T23:17:59.123Z"). Le stringhe non valide restituiscono null senza un errore. - I valori dell’epoca sono espressi in millisecondi.
toDateTime(1560762190189)prevede millisecondi. Se l’origine fornisce marche temporali Unix in secondi, moltiplicarle per 1000 (ad esempio,toDateTime(myField * 1000)). - toBool con stringhe impreviste —
toBoolrestituiscetruesolo se il valore della stringa è esattamente"true". Qualsiasi altra stringa (inclusi"1","yes","TRUE") restituiscefalse.
toBool toBool
Converte un valore di argomento in un valore booleano, a seconda del tipo.
- Da stringa: prova a convertire il valore stringa come booleano; da “true” se il valore stringa è “true”; in caso contrario false
- Dal valore numerico: true se il valore numerico non è uguale a 0, false in caso contrario
toBool(<parameter>)- decimale
- booleano
- stringa
- intero
toBool(<decimal>)
toBool(<boolean>)
toBool(<string>)
toBool(<integer>)
Restituisce un valore booleano.
toBool("true")
toBool(1)
Restituisce true.
toBool("this is not a boolean")
Restituisce false.
toDateOnly toDateOnly
Converte un argomento in un valore di tipo dateOnly. Per ulteriori informazioni sui tipi di dati, consulta questa sezione.
toDateOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parametro | Tipo |
| Rappresentazione stringa di una data come “AAAA-MM-GG” (formato XDM). Supporta anche il formato ISO-8601: viene considerata solo la parte full-date (consultare RFC 3339, sezione 5.6 | stringa |
| data e ora | dateTime |
| data e ora senza fuso orario | dateTimeOnly |
| valore intero di un’epoca in millisecondi | intero |
toDateOnly(<dateTime>)
toDateOnly(<dateTimeOnly>)
toDateOnly(<string>)
toDateOnly(<integer>, <integer>, <integer>)
Restituisce un valore di tipo dateOnly.
toDateOnly("2023-08-18")
toDateOnly("2023-08-18T00:00:00.000Z")
toDateOnly("2023-08-18T00:00:00")
tutti restituiscono un oggetto dateOnly che rappresenta il 18 agosto 2023.
toDateOnly(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate})
Restituisce un valore dateOnly.
toDateTime toDateTime
Converte i parametri in un valore di data e ora, a seconda del tipo.
toDateTime(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
|---|---|
| Parametro | Descrizione |
| stringa | data e ora nel formato ISO-8601. Una rappresentazione stringa di un datetime con informazioni sul fuso orario |
| stringa | id del fuso orario. Un identificatore del fuso orario (ad esempio, “UTC”, “Europa/Parigi”) |
| dateOnly | rappresenta una data senza fuso orario, visualizzata come anno-mese-giorno |
| dateTimeOnly | rappresenta un datetime senza fuso orario, visualizzato come anno-mese-giorno-ora-minuto-secondo-millisecondo |
| intero | valore intero di un’epoca in millisecondi |
toDateTime(<string>)
toDateTime(<string>, <dateOnly>)
toDateTime(<string>, <dateTimeOnly>)
toDateTime(<integer>)
Restituisce un valore dateTime.
toDateTime("2023-08-18T23:17:59.123Z")
Restituisce 2023-08-18T23:17:59.123Z
La stringa ISO-8601 include già informazioni sul fuso orario.
toDateTime("Europe/Paris", toDateOnly("2023-08-18"))
Restituisce 2023-08-18T00:00:00.000+02:00
Questo crea un dateTime combinando un fuso orario con un valore solo data. L’ora è impostata su mezzanotte (00:00:00) nel fuso orario specificato.
toDateTime("UTC", toDateTimeOnly("2023-08-18T23:17:59.123"))
Restituisce 2023-08-18T23:17:59.123Z
Viene creato un valore dateTime applicando un fuso orario a un valore dateTimeOnly (che non contiene informazioni sul fuso orario).
toDateTime(1560762190189)
Restituisce 2019-06-17T09:03:10.189Z
Converte una marca temporale Unix in millisecondi in un valore dateTime.
toDateTimeOnly toDateTimeOnly
Converte un valore di argomento in un valore di sola data e ora.
toDateTimeOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora in formato ISO-8601 o “AAAA-MM-GG” (formato data XDM) | stringa |
| data e ora | dateTime |
toDateTimeOnly(<dateTime>)
toDateTimeOnly(<string>)
Restituisce un valore datetime senza considerare il fuso orario.
toDateTimeOnly ("2023-08-18")
restituisce un valore dateTime che rappresenta 2023-08-18T00:00:00.000
toDateTimeOnly(now())
toDecimal toDecimal
Converte un valore di argomento in un valore decimale, a seconda del tipo.
toDecimal(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parametro | Descrizione |
| stringa | converte il valore stringa come decimale |
| dateTime | converte la data in millisecondi (millisecondi epoca) |
| booleano | converte il valore booleano come 1 se true, 0 se false |
| intero | converte in decimale (esempio: 1 diventa 1,0) |
toDecimal(<integer>)
toDecimal(<decimal>)
toDecimal(<string>)
toDecimal(<boolean>)
Restituisce un decimale.
toDecimal("4.0")
Restituisce 4,0.
toDuration toDuration
Converte un valore di argomento in una durata. Per ulteriori informazioni sui tipi di dati, consultare questa pagina.
toDuration(<parameter>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Descrizione |
| stringa | formati basati sul formato di durata ISO-8601 PnDTnHnMn.nS con giorni considerati esattamente 24 ore |
| intero | numero di millisecondi |
Espressione stringa: i formati accettati sono basati sul formato di durata ISO-8601 PnDTnHnMn.nS con giorni considerati esattamente 24 ore.
La stringa inizia con un segno facoltativo, indicato dal simbolo ASCII negativo o positivo. Se negativo, l’intero periodo viene ignorato. La lettera ASCII “P” è successiva in maiuscolo o in minuscolo. Ci sono poi quattro sezioni, ciascuna composta da un numero e un suffisso. Le sezioni hanno suffissi in ASCII di “D”, “H”, “M” e “S” per giorni, ore, minuti e secondi, accettati in maiuscolo o minuscolo. I suffissi devono essere disposti in ordine. La lettera ASCII “T” deve precedere la prima occorrenza, se presente, di un’ora, un minuto o una seconda sezione. Deve essere presente almeno una delle quattro sezioni e, se “T” è presente, deve esserci almeno una sezione dopo la “T”. La parte numerica di ogni sezione deve essere costituita da una o più cifre ASCII. Il numero può essere preceduto dal simbolo ASCII negativo o positivo. Il numero di giorni, ore e minuti deve essere analizzato in lungo. Il numero di secondi deve essere analizzato insieme alla frazione facoltativa. Il punto decimale può essere un punto o una virgola. La parte frazionaria può avere da zero a 9 cifre.
toDuration(<string>)
toDuration(<integer>)
Restituisce una durata.
toDuration("PT10H")
Restituisce una durata di 10 ore.
toDuration("PT4S")
Restituisce una durata di 4 secondi.
toDuration(4000)
Restituisce una durata di 4 secondi.
toInteger toInteger
Converte un valore di argomento in un numero intero.
toInteger(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parametro | Descrizione |
| stringa | converte il valore stringa come numero intero |
| dateTime | converte la data in millisecondi (millisecondi epoca) |
| decimale | converte in numero intero rimuovendo la parte decimale (ad esempio: 1,5 diventa 1) |
| booleano | converte il valore booleano come 1 se true, 0 se false |
toInteger(<dateTime>)
toInteger(<decimal>)
toInteger(<integer>)
toInteger(<string>)
toInteger(<boolean>)
Restituisce un numero intero.
toInteger("4")
Restituisce 4.
toString toString
Converte un valore di argomento in un valore stringa, a seconda del tipo. Per ulteriori informazioni sui tipi di dati, consultare questa pagina.
toString(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 | |
|---|---|
| Parametro | Descrizione |
| dateTime | converte la data nel formato data UTC |
| dateTimeOnly | converte la data nel formato data UTC |
| durata | convertire nel numero di millisecondi corrispondente come stringa |
| intero | converte in rappresentazione stringa del valore (1 diventa “1”) |
| decimale | converte in rappresentazione stringa del valore (1,5 diventa “1,5”) |
| booleano | converti il valore booleano come ‘true’ se true, ‘false’ se false |
toString(<dateTimeOnly>)
toString(<dateTime>)
toString(<duration>)
toString(<boolean>)
toString(<integer>)
toString(<decimal>)
Restituisce una stringa.
toString(4)
Restituisce “4”.
toString(#{ExperiencePlatform.test_date.person.birthDate}))
Restituisce la rappresentazione in forma di stringa del campo dataOnly specificato (campo Data XDM), ad esempio “2023-08-18”.
toString(toDuration(1520))
Restituisce “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.