转换函数 conversion-functions
利用转换函数,您可以在历程表达式中将数据从一种类型转换为另一种类型。 在使用不同的数据源和操作时,这些函数对于确保数据兼容性和正确类型处理至关重要。
当您需要执行以下操作时,请使用转换函数:
- 将字符串值转换为数字、布尔或日期类型(toInteger,toDecimal,toBool)
- 在不同格式和呈现方式之间转换日期和时间(toDateTime,toDateTimeOnly,toDateOnly)
- 转换介于整数和小数类型(toInteger,toDecimal)之间的数值
- 将值转换为字符串格式(toString)或持续时间(toDuration)
- 确保比较和操作的类型兼容性
- 处理来自可能具有不同类型格式的外部源的数据
每个转换函数都会自动处理特定于类型的规则和边缘案例,从而使数据转换在历程表达式中更加可靠和可预测。
toBool toBool
根据类型将参数值转换为布尔值。
- 从字符串:尝试将字符串值转换为布尔值;如果字符串值为“true”,则从“true”;否则从“false”
- 从数值:如果数值不等于0,则为true;否则为false
toBool(<parameter>)- 小数
- 布尔
- 字符串
- 整数
toBool(<decimal>)
toBool(<boolean>)
toBool(<string>)
toBool(<integer>)
返回布尔值。
toBool("true")
toBool(1)
返回真。
toBool("this is not a boolean")
返回假。
toDateOnly toDateOnly
将参数转换为dateOnly类型值。 要了解有关数据类型的更多信息,请参阅此部分。
toDateOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| 参数 | 类型 |
| 以“YYYY-MM-DD”形式表示的日期的字符串(XDM格式)。 还支持ISO-8601格式:仅考虑 完整日期 部分(请参阅RFC 3339,第5.6节) | 字符串 |
| 日期时间 | dateTime |
| 不带时区的日期时间 | dateTimeOnly |
| 纪元的整数值(以毫秒为单位) | 整数 |
toDateOnly(<dateTime>)
toDateOnly(<dateTimeOnly>)
toDateOnly(<string>)
toDateOnly(<integer>, <integer>, <integer>)
返回dateOnly类型值。
toDateOnly("2023-08-18")
toDateOnly("2023-08-18T00:00:00.000Z")
toDateOnly("2023-08-18T00:00:00")
所有参数都返回表示2023-08-18的dateOnly对象。
toDateOnly(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate})
返回dateOnly。
toDateTime toDateTime
根据参数类型将参数转换为日期时间值。
toDateTime(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| 参数 | 类型 |
| ISO-8601格式的日期时间 | 字符串 |
| 时区id | 字符串 |
| 不带时区的日期时间 | dateTimeOnly |
| 纪元的整数值(以毫秒为单位) | 整数 |
toDateTime(<string>)
toDateTime(<stringified time zone id>, <dateTimeOnly>)
toDateTime(<integer>)
返回日期时间。
toDateTime ("2023-08-18T23:17:59.123Z")
返回2023-08-18T23:17:59.123Z
toDateTime(toDateTimeOnly("UTC", "2023-08-18T23:17:59.123"))
返回2023-08-18T23:17:59.123Z
toDateTime(1560762190189)
返回2023-06-17T09:03:10.189Z
toDateTimeOnly toDateTimeOnly
将参数值转换为仅日期时间值。
toDateTimeOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| 参数 | 类型 |
| ISO-8601或“YYYY-MM-DD”格式的日期时间(XDM日期格式) | 字符串 |
| 日期时间 | dateTime |
toDateTimeOnly(<dateTime>)
toDateTimeOnly(<string>)
返回不考虑时区的日期时间。
toDateTimeOnly ("2023-08-18")
返回表示2023-08-18T00:00:00.000的日期时间
toDateTimeOnly(now())
toDecimal toDecimal
根据类型将参数值转换为十进制值。
toDecimal(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| 参数 | 描述 |
| 字符串 | 将字符串值转换为小数 |
| dateTime | 将日期转换为毫秒数(纪元毫秒) |
| 布尔 | 如果为true,则将布尔值转换为1;如果为false,则将布尔值转换为0 |
| 整数 | 转换为小数(示例)。:1变为1.0) |
toDecimal(<integer>)
toDecimal(<decimal>)
toDecimal(<string>)
toDecimal(<boolean>)
返回小数。
toDecimal("4.0")
返回4.0。
toDuration toDuration
将参数值转换为持续时间。 有关数据类型的详细信息,请参阅此页面。
toDuration(<parameter>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| 参数 | 描述 |
| 字符串 | 基于ISO-8601持续时间格式PnDTnHnMn.nS的格式,天数被视为刚好24小时 |
| 整数 | 毫秒数 |
如果字符串表达式:接受的格式基于ISO-8601持续时间格式PnDTnHnMn.nS,天数被认为刚好是24小时。
字符串以可选符号开头,由ASCII负号或正号表示。 如果为负值,则整个期间将被否定。 ASCII字母“P”是下一个大写或小写。 然后有四个部分,每个部分包含一个数字和一个后缀。 各节的ASCII后缀为“D”、“H”、“M”和“S”,表示日、小时、分钟和秒,可使用大写或小写。 后缀必须按顺序出现。 ASCII字母“T”必须出现在小时、分钟或秒部分的第一次(如果有)之前。 四个部分中的至少一个必须存在,如果存在“T”,则“T”后面必须至少有一个部分。 每个部分的数字部分必须包含一个或多个ASCII数字。 数字可以用ASCII负号或正号作为前缀。 必须将天数、小时数和分钟数解析为。 必须解析到的秒数以及可选的分数。 小数点可以是点或逗号。 小数部分可以有0到9位数字。
toDuration(<string>)
toDuration(<integer>)
返回持续时间。
toDuration("PT10H")
返回10小时的持续时间。
toDuration("PT4S")
返回4秒的持续时间。
toDuration(4000)
返回4秒的持续时间。
toInteger toInteger
将参数值转换为整数。
toInteger(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| 参数 | 描述 |
| 字符串 | 将字符串值转换为整数 |
| dateTime | 将日期转换为毫秒数(纪元毫秒) |
| 小数 | 通过删除小数部分转换为整数(示例:1.5变为1) |
| 布尔 | 如果为true,则将布尔值转换为1;如果为false,则将布尔值转换为0 |
toInteger(<dateTime>)
toInteger(<decimal>)
toInteger(<integer>)
toInteger(<string>)
toInteger(<boolean>)
返回整数。
toInteger("4")
返回4。
toString toString
根据类型将参数值转换为字符串值。 有关数据类型的详细信息,请参阅此页面。
toString(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 | |
|---|---|
| 参数 | 描述 |
| dateTime | 将日期转换为UTC日期格式 |
| dateTimeOnly | 将日期转换为UTC日期格式 |
| 持续时间 | 转换为字符串形式的相应毫秒数 |
| 整数 | 转换为值的字符串表示形式(1变为“1”) |
| 小数 | 转换为值的字符串表示形式(1.5变为“1.5”) |
| 布尔 | 将布尔值转换为“true”(如果为true),“false”(如果为false) |
toString(<dateTimeOnly>)
toString(<dateTime>)
toString(<duration>)
toString(<boolean>)
toString(<integer>)
toString(<decimal>)
返回字符串。
toString(4)
返回“4”。
toString(#{ExperiencePlatform.test_date.person.birthDate}))
返回给定dateOnly字段(XDM日期字段)的字符串表示形式,例如“2023-08-18”。
toString(toDuration(1520))
返回“PT1.52S”。