전환 함수 conversion-functions
변환 함수를 사용하면 여정 표현식 내에서 데이터를 한 유형에서 다른 유형으로 변환할 수 있습니다. 이러한 기능은 다양한 데이터 소스 및 작업으로 작업할 때 데이터 호환성과 적절한 유형 처리를 보장하기 위해 필수적입니다.
다음과 같은 작업을 수행할 때 변환 함수를 사용합니다.
- 문자열 값을 숫자, 부울 또는 날짜 형식(toInteger, toDecimal, toBool)으로 변환합니다.
- 다른 형식과 표시(toDateTime, toDateTimeOnly, toDateOnly) 간의 날짜 및 시간 변환
- 정수 및 십진수 형식(toInteger, toDecimal) 간에 숫자 값을 캐스팅합니다.
- 값을 문자열 형식(toString) 또는 기간(toDuration)으로 변환
- 비교 및 작업을 위한 유형 호환성 보장
- 다른 형식 형식을 가질 수 있는 외부 소스의 데이터 처리
각 전환 기능은 유형별 규칙과 극단적 사례를 자동으로 처리하므로 여정 표현식에서 보다 안정적이고 예측 가능한 데이터 변환을 만들 수 있습니다.
빠른 참조 quick-reference
toDateTime을(를) 사용합니다. 로컬 날짜-시간만 적절하고 시간대를 무시할 수 있는 경우(예: 조건의 일정 날짜 비교) toDateTimeOnly을(를) 사용합니다.일반적인 함정 pitfalls
- 시간대는 문자열 상수여야 합니다 —
toDateTime의 시간대 인수는 필드 참조나 동적 식일 수 없습니다. 항상"UTC"또는"Europe/Paris"과(와) 같은 리터럴 문자열을 전달하십시오. - 문자열 입력에 필요한 ISO-8601 형식 — 문자열을
toDateTime또는toDateTimeOnly에 전달할 때 ISO-8601 형식(예:"2023-08-18T23:17:59.123Z")을 따르는지 확인하십시오. 잘못된 형식의 문자열이 오류 없이 null을 반환합니다. - Epoch 값이 밀리초 단위입니다 —
toDateTime(1560762190189)에는 밀리초가 필요합니다. 소스에서 Unix 타임스탬프를 초 단위로 제공하는 경우 먼저 1000을 곱하십시오(예:toDateTime(myField * 1000)). - 예기치 않은 문자열이 있는 toBool —
toBool은(는) 문자열 값이 정확히"true"인 경우에만true을(를) 반환합니다. 다른 문자열("1","yes","TRUE"포함)은false을 반환합니다.
toBool toBool
인수 유형에 따라 인수 값을 부울 값으로 변환합니다.
- From string: 문자열 값을 부울로 변환하고 문자열 값이 "true"이면 "true"를 반환하고 그렇지 않으면 false를 반환합니다
- 숫자에서: 숫자 값이 0이 아니면 true이고, 그렇지 않으면 false입니다
toBool(<parameter>)- decimal
- 부울
- 문자열
- 정수
toBool(<decimal>)
toBool(<boolean>)
toBool(<string>)
toBool(<integer>)
부울 반환.
toBool("true")
toBool(1)
true를 반환합니다.
toBool("this is not a boolean")
false를 반환합니다.
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")
all은 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 5-row-2 | |
|---|---|
| 매개 변수 | 설명 |
| 문자열 | ISO-8601 형식의 날짜 시간입니다. 시간대 정보가 있는 날짜/시간의 문자열 표현 |
| 문자열 | 시간대 id입니다. 시간대 식별자(예: “UTC”, “Europe/Paris”) |
| dateOnly | 은 시간대가 없는 날짜를 나타내며, 연/월일로 표시됩니다. |
| dateTimeOnly | 시간대가 없는 날짜/시간을 연-월-일-시간-분-초 단위로 표시 |
| 정수 | 에포크의 정수 값(밀리초) |
toDateTime(<string>)
toDateTime(<string>, <dateOnly>)
toDateTime(<string>, <dateTimeOnly>)
toDateTime(<integer>)
dateTime 반환
toDateTime("2023-08-18T23:17:59.123Z")
2023-08-18T23 반환:17:59.123Z
ISO-8601 문자열에 이미 시간대 정보가 포함되어 있습니다.
toDateTime("Europe/Paris", toDateOnly("2023-08-18"))
2023-08-18T00:00:00.000+02:00 반환
시간대를 날짜 전용 값과 결합하여 dateTime을 만듭니다. 지정된 시간대의 시간은 자정(00:00:0)으로 설정됩니다.
toDateTime("UTC", toDateTimeOnly("2023-08-18T23:17:59.123"))
2023-08-18T23 반환:17:59.123Z
시간대 정보가 없는 dateTimeOnly 값에 시간대를 적용하여 dateTime을 만듭니다.
toDateTime(1560762190189)
2019-06-17T09:03:10.189Z 반환
Unix 타임스탬프(밀리초)를 dateTime 값으로 변환합니다.
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을 나타내는 dateTime을 반환합니다
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이면 부울 값으로 변환합니다. |
| 정수 | 소수로 변환(예: 1이 1.0이 됨) |
toDecimal(<integer>)
toDecimal(<decimal>)
toDecimal(<string>)
toDecimal(<boolean>)
십진수를 반환합니다.
toDecimal("4.0")
4.0을 반환합니다
toDuration toDuration
인수 값을 duration으로 변환합니다. 데이터 형식에 대한 자세한 내용은 이 페이지를 참조하세요.
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"는 다음으로 대문자 또는 소문자로 구성됩니다. 그 다음에는 4개의 섹션이 있는데, 각각의 섹션은 숫자와 접미사로 구성되어 있다. 섹션에는 일, 시간, 분 및 초 동안 “D”, “H”, “M” 및 "S"의 ASCII 접미사가 있으며, 대문자나 소문자로 허용됩니다. 접미사는 순서대로 수행되어야 합니다. ASCII 문자 "T"는 시간, 분 또는 초 구간의 첫 번째 항목(있는 경우) 전에 발생해야 합니다. 4개의 섹션 중 적어도 하나가 있어야 하며, "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 | 날짜를 밀리초 단위로 변환(에포크 밀리초) |
| decimal | 소수 부분을 제거하여 정수로 변환합니다(예: 1.5가 1이 됨). |
| 부울 | true이면 부울 값을 1, false이면 부울 값으로 변환합니다. |
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"이 됨) |
| decimal | 값의 문자열 표현으로 변환(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"를 반환합니다.
이 단원에는 이 주제와 관련된 해석, 검색 및 질문 답변을 지원하기 위한 구조화된 지식이 포함되어 있습니다.
이해를 돕기 위해 이 정보를 이 페이지의 설명서와 통합해야 합니다. 두 소스 모두 독립적으로 사용하기 위한 것은 아닙니다. 이 페이지에서는 기능에 대해 설명하지만, 용어, 의도, 적용 가능성 및 제약 조건을 명확히 하는 데 도움이 되는 추가 컨텍스트를 제공합니다.
- TL;DR: 이 페이지에서는 문자열, 정수, 십진수, 부울, 날짜, 날짜, 날짜, 시간 및 기간과 같은 형식 간에 값을 변환하는 방법을 설명하는 AJO 여정 식의 모든 변환 함수를 설명합니다.
의도:
toDateTime을(를) 사용하여 문자열 또는 에포크 정수를 시간대 인식 날짜/시간으로 변환toDateTimeOnly을(를) 사용하여 문자열 또는 날짜/시간을 표준 시간대 없는 날짜/시간으로 변환toDateOnly을(를) 사용하여 문자열 또는 날짜/시간에서 날짜 전용 값(연/월/일) 추출toInteger,toDecimal또는toBool을(를) 사용하여 값을 정수, 십진수 또는 부울로 캐스팅합니다.toString을(를) 사용하여 모든 값을 문자열 표현으로 직렬화합니다.toDuration을(를) 사용하여 문자열 또는 밀리초 정수를 기간으로 변환
용어집:
- dateTime: 시간대 오프셋 정보 (제품별)이(가) 포함된 datetime 값입니다.
- dateTimeOnly: 시간대 정보가 없는 datetime 값 (제품별)
- dateOnly: 시간 구성 요소 (제품별)이(가) 없는 연도-월일을 나타내는 날짜 값입니다.
- duration: ISO-8601 형식(예: PT10H) (제품별)으로 표현된 기간
- epoch 밀리초: 1970-01-01T00:00:00Z 이후 밀리초 단위로 표시되는 Unix 타임스탬프
보호 기능:
toDateTime의 시간대 인수는 문자열 상수여야 합니다. 필드 참조와 동적 식은 허용되지 않습니다.toDateTime및toDateTimeOnly에 대한 문자열 입력은 ISO-8601 형식을 따라야 합니다. 잘못된 문자열은 오류 없이 null을 반환합니다.- epoch 정수가 있는
toDateTime에는 밀리초가 필요합니다. 초 기반 타임스탬프에 1000을 곱한 후 전달하십시오. toBool은(는) 정확한 문자열"true"에 대해서만true을(를) 반환합니다."1","yes"또는"TRUE"과(와) 같은 문자열은false을(를) 반환합니다.
용어:
- 정식 이름: 변환 함수 — 약어: 없음 — 변형: 유형 캐스팅 함수, 유형 변환 함수
- 동의어: “toDateTime” = “timezone이 있는 datetime으로 전환”; “toDateTimeOnly” = “timezone이 없는 datetime으로 전환”
- 혼동하지 마십시오. “toDateTime”(시간대 인식) ≠ “toDateTimeOnly”(시간대 없음)
- 혼동하지 마십시오. “toDateOnly”(날짜만, 시간 없음) ≠ “toDateTime”(시간대가 있는 날짜 및 시간)
FAQ:
- Q: 언제
toDateTime과(와)toDateTimeOnly을(를) 사용해야 합니까? — 시간대 정보가 중요한 경우(예: 일정 또는 지역 간 비교)toDateTime을(를) 사용하고, 로컬 날짜-시간만 관련되고 시간대를 무시할 수 있는 경우toDateTimeOnly을(를) 사용합니다. - Q:
toBool("TRUE")에서 false를 반환하는 이유는 무엇입니까? —toBool은(는) 정확한 소문자 문자열"true"만 인식합니다."TRUE"또는"yes"을(를) 포함한 다른 모든 문자열 값은 false를 반환합니다. - Q: Unix 타임스탬프(초)를 dateTime으로 변환하려면 어떻게 해야 합니까? — 초 값에 1000을 곱하여 밀리초를 계산한 다음
toDateTime(예:toDateTime(myField * 1000))에 전달합니다. - Q: 프로필 특성에서
toDateTime의 시간대를 읽을 수 있습니까? — 아니요. 시간대 ID는 문자열 상수여야 합니다. 필드 참조 및 표현식은 지원되지 않습니다. - Q:
toDuration이(가) 문자열로 허용하는 형식은 무엇입니까? — ISO-8601 기간 형식(예: 10시간 동안"PT10H"또는 1일 2시간 동안"P1DT2H").