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 18T00:00:00.000+02:00 de 2023
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”.
Esta seção contém conhecimento estruturado destinado a oferecer suporte à interpretação, recuperação e resposta a perguntas relacionadas a este tópico.
Para uma compreensão completa, essas informações devem ser combinadas com a documentação desta página. Nenhuma das origens deve ser independente; a página descreve o recurso, enquanto esta seção fornece um contexto adicional que ajuda a desfazer a ambiguidade da terminologia, intenção, aplicabilidade e restrições.
- TL;DR: esta página documenta todas as funções de conversão em expressões de jornada do AJO, explicando como transformar valores entre tipos como sequência, inteiro, decimal, booleano, data, data e hora e duração.
Intenções:
- Converter uma cadeia de caracteres ou um inteiro de época em um datetime com reconhecimento de fuso horário usando
toDateTime - Converter uma string ou datetime em um datetime sem fuso horário usando
toDateTimeOnly - Extrair um valor somente de data (dia-mês-ano) de uma string ou datetime usando
toDateOnly - Converter um valor em um inteiro, decimal ou booleano usando
toInteger,toDecimaloutoBool - Serializar qualquer valor para sua representação de cadeia de caracteres usando
toString - Converter uma cadeia de caracteres ou um inteiro de milissegundos em uma duração usando
toDuration
Glossário:
- dateTime: um valor datetime que inclui informações de deslocamento de fuso horário (específico do produto)
- dateTimeOnly: um valor datetime sem informações de fuso horário (específico do produto)
- dateOnly: um valor de data que representa o ano-mês-dia sem componente de tempo (específico do produto)
- duração: um período expresso no formato ISO-8601 (por exemplo, PT10H) (específico do produto)
- milissegundos da época: carimbo de data/hora Unix expresso em milissegundos desde 1970-01-01T00:00:00Z
Medidas de Proteção:
- O argumento de fuso horário em
toDateTimedeve ser uma constante de cadeia de caracteres — referências de campo e expressões dinâmicas não são permitidas - As entradas de cadeia de caracteres para
toDateTimeetoDateTimeOnlydevem seguir o formato ISO-8601; cadeias de caracteres malformadas retornam nulo sem erro toDateTimecom um número inteiro de época espera milissegundos; multiplique os carimbos de data/hora baseados em segundos por 1000 antes de passartoBoolretornatruesomente para a sequência exata"true"; sequências como"1","yes"ou"TRUE"retornamfalse
Terminologia:
- Nome canônico: Funções de conversão — Acrônimo: none — variantes: funções de fundição de tipo, funções de conversão de tipo
- Sinônimos: “toDateTime” = “converter em datetime com fuso horário”; “toDateTimeOnly” = “converter em datetime sem fuso horário”
- Não confunda: “toDateTime” (sensível ao fuso horário) ≠ “toDateTimeOnly” (sem fuso horário)
- Não confunda: “toDateOnly” (somente data, sem hora) ≠ “toDateTime” (data e hora com fuso horário)
Perguntas frequentes:
- P: Quando devo usar
toDateTimextoDateTimeOnly? — UsetoDateTimequando as informações de fuso horário forem importantes (por exemplo, agendamento ou comparações entre regiões); usetoDateTimeOnlyquando apenas a data-hora local for relevante e o fuso horário puder ser ignorado. - P: Por que
toBool("TRUE")retorna falso? —toBoolreconhece somente a cadeia de caracteres"true"em minúsculas; todos os outros valores de cadeia de caracteres, incluindo"TRUE"ou"yes", retornam false. - P: Como converter um carimbo de data/hora Unix em segundos para um dateTime? — Multiplique o valor de segundos por 1000 para obter milissegundos e passe-o para
toDateTime, por exemplo,toDateTime(myField * 1000). - P: O fuso horário em
toDateTimepode ser lido de um atributo de perfil? — Não, a ID do fuso horário deve ser uma constante de string; referências de campo e expressões não são compatíveis. - P: Qual formato
toDurationaceita como sequência de caracteres? — Formato de duração ISO-8601, por exemplo,"PT10H"para 10 horas ou"P1DT2H"para 1 dia e 2 horas.