Funções de conversão conversion-functions
As funções de conversão permitem transformar dados de um tipo para outro nas expressões de jornada. Essas funções são essenciais para garantir a compatibilidade de dados e o manuseio adequado de tipos ao trabalhar com diferentes fontes de dados e operações.
Use as funções de conversão quando precisar:
- Converter valores de cadeia de caracteres em tipos numéricos, booleanos ou de data (toInteger, toDecimal, toBool)
- Transforme datas e horas entre diferentes formatos e representações (toDateTime, toDateTimeOnly, toDateOnly)
- Conversão de valores numéricos entre tipos inteiros e decimais (toInteger, toDecimal)
- Converter valores para formato de cadeia de caracteres (toString) ou duração (toDuration)
- Garantir compatibilidade de tipo para comparações e operações
- Processar dados de fontes externas que podem ter diferentes formatos de tipo
Cada função de conversão lida automaticamente com regras específicas de tipo e casos de borda, tornando a transformação de dados mais confiável e previsível em suas expressões de jornada.
Referência rápida quick-reference
toDateTime quando o fuso horário for importante (por exemplo, agendamento de mensagens, comparação de carimbos de data/hora de eventos entre regiões). Use toDateTimeOnly quando apenas a data-hora local for relevante e o fuso horário puder ser ignorado (por exemplo, comparação de datas do calendário em uma condição).Armadilhas comuns pitfalls
- O fuso horário deve ser uma constante de cadeia de caracteres — o argumento de fuso horário em
toDateTimenão pode ser uma referência de campo ou uma expressão dinâmica. Sempre passe uma cadeia de caracteres literal como"UTC"ou"Europe/Paris". - Formato ISO-8601 necessário para entradas de cadeia de caracteres — Ao passar uma cadeia de caracteres para
toDateTimeoutoDateTimeOnly, verifique se ela segue o formato ISO-8601 (por exemplo,"2023-08-18T23:17:59.123Z"). Cadeias de caracteres malformadas retornam nulo sem erro. - Os valores de época estão em milissegundos —
toDateTime(1560762190189)espera milissegundos. Se sua origem fornecer carimbos de data e hora Unix em segundos, multiplique por 1000 primeiro (por exemplo,toDateTime(myField * 1000)). - toBool com cadeias de caracteres inesperadas —
toBoolretornatruesomente se o valor da cadeia for exatamente"true". Qualquer outra cadeia de caracteres (incluindo"1","yes","TRUE") retornafalse.
toBool toBool
Converte um valor de argumento em um valor booleano, dependendo de seu tipo.
- Da string: tente converter o valor da string como booleano, de “true” se o valor da string for “true”, caso contrário, false
- Do numérico: verdadeiro se o valor numérico não for igual a 0, caso contrário, falso
toBool(<parameter>)- decimal
- booleano
- sequência de caracteres
- inteiro
toBool(<decimal>)
toBool(<boolean>)
toBool(<string>)
toBool(<integer>)
Retornar um booleano.
toBool("true")
toBool(1)
Retorna verdadeiro.
toBool("this is not a boolean")
Retorna falso.
toDateOnly toDateOnly
Converte um argumento em um valor de tipo dateOnly. Para saber mais sobre tipos de dados, consulte esta seção.
toDateOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parâmetro | Tipo |
| Representação em sequência de caracteres de uma data como “AAAA-MM-DD” (formato XDM). Também é compatível com o formato ISO-8601: apenas a parte full-date é considerada (Consulte RFC 3339, seção 5.6 | sequência de caracteres |
| data e hora | dateTime |
| data hora sem fuso horário | dateTimeOnly |
| valor inteiro de uma época em milissegundos | inteiro |
toDateOnly(<dateTime>)
toDateOnly(<dateTimeOnly>)
toDateOnly(<string>)
toDateOnly(<integer>, <integer>, <integer>)
Retorna um valor de tipo dateOnly.
toDateOnly("2023-08-18")
toDateOnly("2023-08-18T00:00:00.000Z")
toDateOnly("2023-08-18T00:00:00")
todos retornam um objeto dateOnly representando 2023-08-18.
toDateOnly(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate})
Retorna um dateOnly.
toDateTime toDateTime
Converte parâmetros em um valor de data e hora, dependendo de seus tipos.
toDateTime(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
|---|---|
| Parâmetro | Descrição |
| sequência de caracteres | data e hora no formato ISO-8601. Uma representação da string de um datetime com informações de fuso horário |
| sequência de caracteres | id do fuso horário. Um identificador de fuso horário (por exemplo, “UTC”, “Europa/Paris”) |
| dateOnly | representa uma data sem fuso horário, visualizada como ano-mês-dia |
| dateTimeOnly | representa um datetime sem um fuso horário, exibido como year-month-day-hour-minute-second-milisecond |
| inteiro | valor inteiro de uma época em milissegundos |
toDateTime(<string>)
toDateTime(<string>, <dateOnly>)
toDateTime(<string>, <dateTimeOnly>)
toDateTime(<integer>)
Retornar um dateTime.
toDateTime("2023-08-18T23:17:59.123Z")
Retorna 2023-08-18T23:17:59.123Z
A cadeia de caracteres ISO-8601 já inclui informações de fuso horário.
toDateTime("Europe/Paris", toDateOnly("2023-08-18"))
Retorna 2023-08-18T00:00:00.000+02:00
Isso cria um dateTime combinando um fuso horário com um valor somente de data. A hora é definida como meia-noite (00:00:00) no fuso horário especificado.
toDateTime("UTC", toDateTimeOnly("2023-08-18T23:17:59.123"))
Retorna 2023-08-18T23:17:59.123Z
Isso cria um dateTime aplicando um fuso horário a um valor dateTimeOnly (que não tem informações de fuso horário).
toDateTime(1560762190189)
Retorna 17T09:03:10.189Z de 2019
Converte um carimbo de data e hora Unix em milissegundos em um valor dateTime.
toDateTimeOnly toDateTimeOnly
Converte um valor de argumento em um valor somente de data e hora.
toDateTimeOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| data e hora no formato ISO-8601 ou “AAAA-MM-DD” (formato de data XDM) | sequência de caracteres |
| data e hora | dateTime |
toDateTimeOnly(<dateTime>)
toDateTimeOnly(<string>)
Retorna um datetime sem considerar o fuso horário.
toDateTimeOnly ("2023-08-18")
retorna um dateTime representando 2023-08-18T00:00:00.000
toDateTimeOnly(now())
toDecimal toDecimal
Converte um valor de argumento em um valor decimal, dependendo de seu tipo.
toDecimal(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parâmetro | Descrição |
| sequência de caracteres | converte o valor da string em um decimal |
| dateTime | converte a data no número de milissegundos (milissegundos da época) |
| booleano | converte o valor booleano como 1 se verdadeiro, 0 se falso |
| inteiro | converte para um decimal (exemplo: 1 torna-se 1.0) |
toDecimal(<integer>)
toDecimal(<decimal>)
toDecimal(<string>)
toDecimal(<boolean>)
Retorna um decimal.
toDecimal("4.0")
Retorna 4.0.
toDuration toDuration
Converte um valor de argumento em uma duração. Para obter mais informações sobre tipos de dados, consulte esta página.
toDuration(<parameter>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Descrição |
| sequência de caracteres | formatos baseados no formato de duração ISO-8601 PnDTnHnMn.nS com dias considerados exatamente 24 horas |
| inteiro | número de milissegundos |
Se expressão de string: os formatos aceitos são baseados no formato de duração ISO-8601 PnDTnHnMn.nS com dias considerados como sendo exatamente 24 horas.
A string começa com um sinal opcional, indicado pelo símbolo ASCII negativo ou positivo. Se negativo, todo o período é negado. A letra ASCII “P” é a próxima em maiúsculas ou minúsculas. Há então quatro seções, cada uma consistindo de um número e um sufixo. As seções têm sufixos em ASCII de “D”, “H”, “M” e “S” para dias, horas, minutos e segundos, aceitos em maiúsculas ou minúsculas. Os sufixos devem ocorrer em ordem. A letra ASCII “T” deve ocorrer antes da primeira ocorrência, se houver, de uma hora, minuto ou segunda seção. Pelo menos uma das quatro seções deve estar presente, e se “T” estiver presente, deve haver pelo menos uma seção após o “T”. A parte do número de cada seção deve consistir em um ou mais dígitos ASCII. O número pode ser prefixado pelo símbolo ASCII negativo ou positivo. O número de dias, horas e minutos que devem ser analisados. O número de segundos deve ser analisado juntamente com a fração opcional. O ponto decimal pode ser um ponto ou uma vírgula. A parte fracional pode ter de zero a nove dígitos.
toDuration(<string>)
toDuration(<integer>)
Retorna uma duração.
toDuration("PT10H")
Retorna a duração de 10 horas.
toDuration("PT4S")
Retorna a duração de 4s.
toDuration(4000)
Retorna a duração de 4s.
toInteger toInteger
Converte um valor de argumento em um inteiro.
toInteger(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parâmetro | Descrição |
| sequência de caracteres | converte o valor da string em um inteiro |
| dateTime | converte a data no número de milissegundos (milissegundos da época) |
| decimal | converte em um inteiro removendo a parte decimal (exemplo: 1,5 torna-se 1) |
| booleano | converte o valor booleano como 1 se verdadeiro, 0 se falso |
toInteger(<dateTime>)
toInteger(<decimal>)
toInteger(<integer>)
toInteger(<string>)
toInteger(<boolean>)
Retorna um número inteiro.
toInteger("4")
Retorna 4.
toString toString
Converte um valor de argumento em um valor de string, dependendo de seu tipo. Para obter mais informações sobre tipos de dados, consulte esta página.
toString(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 | |
|---|---|
| Parâmetro | Descrição |
| dateTime | converte a data no formato de data UTC |
| dateTimeOnly | converte a data no formato de data UTC |
| duração | converta para o número correspondente de milissegundos como uma string |
| inteiro | converte para representação em string do valor (1 torna-se “1”) |
| decimal | converte para representação em string do valor (1,5 torna-se “1,5”) |
| booleano | converta o valor booleano como ‘true’ se verdadeiro, ‘false’ se falso |
toString(<dateTimeOnly>)
toString(<dateTime>)
toString(<duration>)
toString(<boolean>)
toString(<integer>)
toString(<decimal>)
Retorna uma string.
toString(4)
Retorna “4”.
toString(#{ExperiencePlatform.test_date.person.birthDate}))
Retorna a representação da string do campo dateOnly fornecido (campo XDM Date), por exemplo “2023-08-18”.
toString(toDuration(1520))
Retorna “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.