Funciones de conversión conversion-functions
Las funciones de conversión permiten transformar datos de un tipo a otro dentro de las expresiones de recorrido. Estas funciones son esenciales para garantizar la compatibilidad de los datos y la administración adecuada de tipos al trabajar con diferentes fuentes de datos y operaciones.
Utilice las funciones de conversión cuando necesite:
- Convertir valores de cadena a tipos numéricos, booleanos o de fecha (toInteger, toDecimal, toBool)
- Transformar fechas y horas entre diferentes formatos y representaciones (toDateTime, toDateTimeOnly, toDateOnly)
- Convierta valores numéricos entre tipos enteros y decimales (toInteger, toDecimal)
- Convertir valores al formato de cadena (toString) o duración (toDuration)
- Garantizar la compatibilidad de tipos para comparaciones y operaciones
- Procesar datos de fuentes externas que pueden tener diferentes formatos de tipo
Cada función de conversión gestiona automáticamente las reglas específicas del tipo y los casos extremos, lo que hace que la transformación de datos sea más fiable y predecible en las expresiones de recorrido.
Referencia rápida quick-reference
toDateTime cuando la zona horaria sea importante (por ejemplo, programar mensajes, comparar marcas de hora de eventos entre regiones). Utilice toDateTimeOnly cuando solo sea relevante la fecha y hora local y se pueda omitir la zona horaria (por ejemplo, comparando fechas de calendario en una condición).Peligros comunes pitfalls
- Timezone debe ser una constante de cadena — El argumento timezone de
toDateTimeno puede ser una referencia de campo o una expresión dinámica. Pase siempre una cadena literal como"UTC"o"Europe/Paris". - Se requiere el formato ISO-8601 para las entradas de cadena — Al pasar una cadena a
toDateTimeotoDateTimeOnly, asegúrese de que sigue el formato ISO-8601 (por ejemplo,"2023-08-18T23:17:59.123Z"). Las cadenas mal formadas devuelven un valor nulo sin error. - Los valores Epoch se expresan en milisegundos —
toDateTime(1560762190189)espera milisegundos. Si el origen proporciona marcas de tiempo Unix en segundos, multiplique primero por 1000 (por ejemplo,toDateTime(myField * 1000)). - toBool con cadenas inesperadas —
toBooldevuelvetruesolo si el valor de cadena es exactamente"true". Cualquier otra cadena (incluidos"1","yes","TRUE") devuelvefalse.
toBool toBool
Convierte un valor de argumento en un valor booleano, según su tipo.
- Desde cadena: intente convertir el valor de cadena como booleano, de “true” si el valor de cadena es “true” y de “false” en caso contrario
- Desde numérico: true si el valor numérico no es igual a 0, false en caso contrario
toBool(<parameter>)- decimal
- Booleano
- cadena
- entero
toBool(<decimal>)
toBool(<boolean>)
toBool(<string>)
toBool(<integer>)
Devuelve un valor booleano.
toBool("true")
toBool(1)
Devuelve verdadero.
toBool("this is not a boolean")
Devuelve falso.
toDateOnly toDateOnly
Convierte un argumento en un valor de tipo dateOnly. Para obtener más información sobre los tipos de datos, consulte esta sección.
toDateOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parámetro | Tipo |
| Representación de cadena de una fecha como “AAAA-MM-DD” (formato XDM). También admite el formato ISO-8601: solo se tiene en cuenta la parte full-date (consulte RFC 3339, sección 5.6 | cadena |
| fecha y hora | dateTime |
| fecha y hora sin zona horaria | dateTimeOnly |
| valor entero de una época en milisegundos | entero |
toDateOnly(<dateTime>)
toDateOnly(<dateTimeOnly>)
toDateOnly(<string>)
toDateOnly(<integer>, <integer>, <integer>)
Devuelve un valor de tipo dateOnly.
toDateOnly("2023-08-18")
toDateOnly("2023-08-18T00:00:00.000Z")
toDateOnly("2023-08-18T00:00:00")
todos devuelven un objeto dateOnly que representa el 18-08-2023.
toDateOnly(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate})
Devuelve dateOnly.
toDateTime toDateTime
Convierte los parámetros en un valor de fecha y hora, según sus tipos.
toDateTime(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
|---|---|
| Parámetro | Descripción |
| cadena | fecha y hora en formato ISO-8601. Una representación de cadena de una fecha y hora con información de zona horaria |
| cadena | id de zona horaria. Un identificador de zona horaria (por ejemplo, “UTC”, “Europe/Paris”) |
| dateOnly | representa una fecha sin zona horaria, vista como año-mes-día |
| dateTimeOnly | representa una fecha y hora sin una zona horaria, vista como año-mes-día-hora-minuto-segundo-milisegundo |
| entero | valor entero de una época en milisegundos |
toDateTime(<string>)
toDateTime(<string>, <dateOnly>)
toDateTime(<string>, <dateTimeOnly>)
toDateTime(<integer>)
Devolver dateTime.
toDateTime("2023-08-18T23:17:59.123Z")
Devuelve 2023-08-18T23:17:59.123Z
La cadena ISO-8601 ya incluye información de zona horaria.
toDateTime("Europe/Paris", toDateOnly("2023-08-18"))
Devuelve 2023-08-18T00:00:00.000+02:00
Esto crea un dateTime combinando una zona horaria con un valor de solo fecha. La hora se establece en medianoche (00:00:00) en la zona horaria especificada.
toDateTime("UTC", toDateTimeOnly("2023-08-18T23:17:59.123"))
Devuelve 2023-08-18T23:17:59.123Z
Esto crea un dateTime al aplicar una zona horaria a un valor dateTimeOnly (que no tiene información de zona horaria).
toDateTime(1560762190189)
Devuelve 2019-06-17T09:03:10.189Z
Convierte una marca de tiempo Unix en milisegundos en un valor dateTime.
toDateTimeOnly toDateTimeOnly
Convierte un valor de argumento en un valor de solo fecha y hora.
toDateTimeOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| fecha y hora en formato ISO-8601 o “AAAA-MM-DD” (formato de fecha XDM) | cadena |
| fecha y hora | dateTime |
toDateTimeOnly(<dateTime>)
toDateTimeOnly(<string>)
Devuelve una fecha y hora sin tener en cuenta la zona horaria.
toDateTimeOnly ("2023-08-18")
devuelve un valor dateTime que representa el valor 2023-08-18T00:00:00.000
toDateTimeOnly(now())
toDecimal toDecimal
Convierte un valor de argumento en un valor decimal, según su tipo.
toDecimal(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parámetro | Descripción |
| cadena | convierte el valor de cadena como decimal |
| dateTime | convierte la fecha como el número de milisegundos (epoch milisegundos) |
| Booleano | convierte el valor booleano como 1 si es verdadero, 0 si es falso |
| entero | se convierte en decimal (por ejemplo: 1 se convierte en 1,0) |
toDecimal(<integer>)
toDecimal(<decimal>)
toDecimal(<string>)
toDecimal(<boolean>)
Devuelve un decimal.
toDecimal("4.0")
Devuelve 4.0.
toDuration toDuration
Convierte un valor de argumento en una duración. Para obtener más información sobre los tipos de datos, consulte esta página.
toDuration(<parameter>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Descripción |
| cadena | formatos basados en el formato de duración ISO-8601 PnDTnHnMn.nS con días considerados exactamente 24 horas |
| entero | número de milisegundos |
Expresión de cadena If: los formatos aceptados se basan en el formato de duración ISO-8601 PnDTnHnMn.nS con días considerados exactamente 24 horas.
La cadena comienza con un signo opcional, indicado por el símbolo ASCII negativo o positivo. Si es negativo, se anula todo el periodo. La letra ASCII “P” es la siguiente en mayúsculas o minúsculas. A continuación, hay cuatro secciones, cada una de las cuales consta de un número y un sufijo. Las secciones tienen sufijos en ASCII de “D”, “H”, “M” y “S” para días, horas, minutos y segundos, aceptados en mayúsculas o minúsculas. Los sufijos deben aparecer en orden. La letra ASCII “T” debe aparecer antes de la primera aparición, si la hay, de una sección de hora, minuto o segunda. Al menos una de las cuatro secciones debe estar presente, y si “T” está presente debe haber al menos una sección después de la “T”. La parte numérica de cada sección debe constar de uno o más dígitos ASCII. El número puede ir precedido del símbolo ASCII negativo o positivo. El número de días, horas y minutos que se deben analizar. El número de segundos debe analizarse en junto con una fracción opcional. El punto decimal puede ser un punto o una coma. La parte fraccionada puede tener de cero a 9 dígitos.
toDuration(<string>)
toDuration(<integer>)
Devuelve una duración.
toDuration("PT10H")
Devuelve una duración de 10 horas.
toDuration("PT4S")
Devuelve la duración de 4 segundos.
toDuration(4000)
Devuelve la duración de 4 segundos.
toInteger toInteger
Convierte un valor de argumento en un entero.
toInteger(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parámetro | Descripción |
| cadena | convierte el valor de cadena como un entero |
| dateTime | convierte la fecha como el número de milisegundos (epoch milisegundos) |
| decimal | convierte en entero eliminando la parte decimal (ejemplo: 1,5 se convierte en 1) |
| Booleano | convierte el valor booleano como 1 si es verdadero, 0 si es falso |
toInteger(<dateTime>)
toInteger(<decimal>)
toInteger(<integer>)
toInteger(<string>)
toInteger(<boolean>)
Devuelve un entero.
toInteger("4")
Devuelve 4.
toString toString
Convierte un valor de argumento en un valor de cadena, según su tipo. Para obtener más información sobre los tipos de datos, 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 | Descripción |
| dateTime | convierte la fecha en formato UTC |
| dateTimeOnly | convierte la fecha en formato UTC |
| duration | convertir en el número correspondiente de milisegundos como cadena |
| entero | convierte en una representación de cadena del valor (1 se convierte en “1”) |
| decimal | convierte en una representación de cadena del valor (1,5 se convierte en “1,5”) |
| Booleano | convertir el valor booleano como “true” si es verdadero, como “false” si es falso |
toString(<dateTimeOnly>)
toString(<dateTime>)
toString(<duration>)
toString(<boolean>)
toString(<integer>)
toString(<decimal>)
Devolver una cadena.
toString(4)
Devuelve “4”.
toString(#{ExperiencePlatform.test_date.person.birthDate}))
Devuelve la representación de cadena del campo dateOnly dado (campo de fecha XDM), por ejemplo “2023-08-18”.
toString(toDuration(1520))
Devuelve “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.