操作者 operators

運運算元有兩種型別:一元運運算元和二進位運運算元。 有左一元運運算元和右一元運運算元。

// left-hand unary operators
// <operator> <operand>
// operand is an expression
not (@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example@adobe.com")

// right-hand unary operators
// <operator> <operand>
// operand is an expression
@event{LobbyBeacon.endUserIDs._experience.emailid.id} is not null

// binary operators
// <operand1> <operator> <operand2>
// operand is an expression
(@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example1@adobe.com") or (@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example2@adobe.com")

重要備註 important-notes

  • 使用乘法(*)時,兩個作業欄位必須具有相同的型別,可以是整數或小數。 範例:

    • 下列範例是正確的: 3.0 * 4.0
    • 3 * 4.0將導致錯誤
  • 使用+運運算元時,運算式必須封裝在括弧中。 範例:

    • toDateTimeOnly(toDateTime((currentTimeInMillis()) + 1))正確
    • toDateTimeOnly(toDateTime(currentTimeInMillis() + 1))將導致錯誤

邏輯 logical

<expression1> and <expression2>

<expression1>和<expression2>都必須是布林值。 結果是布林值。

範例:

3.14 > 2 and 3.15 < 1

<expression1> or <expression2>

<expression1>和<expression2>都必須是布林值。 結果是布林值。

範例:

3.14 > 2 or 3.15 < 1

not <expression>

<expression>必須為布林值。 結果是布林值。

範例:

not 3.15 < 1

比較 comparison

為null

<expression> is null

結果是布林值。

請注意,null表示運算式沒有評估值。

範例:

@event{BarBeacon.location} is null

不是null

<expression> is not null

結果是布林值。

請注意,null表示運算式沒有評估值。

範例:

@event{BarBeacon.location} is not null

具有null

<expression> has null

<expression>必須是清單。 結果是布林值。

用於識別清單是否包含至少一個Null值。

範例:

["foo", "bar", null] has null

傳回true

["foo", "bar", ""] has null

傳回false,因為「」不視為null。

==

<expression1> == <expression2>
NOTE
<expression1>和<expression2>沒有資料型別控制項。

範例:

3.14 == 42
"foo" == "bar"

!=

<expression1> != <expression2>
NOTE
<expression1>和<expression2>沒有資料型別控制項。

結果是布林值。

範例:

3.14 != 42
"foo" != "bar"

>

<expression1> > <expression2>

日期時間可以與日期時間比較。

Datetimeonly可以與Datetimeonly比較。

整數或小數點都可以與整數或小數點進行比較。

禁止任何其他組合。

結果是布林值。

範例:

3.14 > 42

>=

<expression1> >= <expression2>

日期時間可以與日期時間比較。

Datetimeonly可以與Datetimeonly比較。

整數或小數點都可以與整數或小數點進行比較。

禁止任何其他組合。

結果是布林值。

範例:

42 >= 3.14

<

<expression1> < <expression2>

日期時間可以與日期時間比較。

Datetimeonly可以與Datetimeonly比較。

整數或小數點都可以與整數或小數點進行比較。

禁止任何其他組合。

結果是布林值。

範例:

42 < 3.14

<=

<expression1> <= <expression2>

日期時間可以與日期時間比較。

Datetimeonly可以與Datetimeonly比較。

整數或小數點都可以與整數或小數點進行比較。

禁止任何其他組合。

結果是布林值。

範例:

42 <= 3.14

算術 arithmetic

+

<expression1> + <expression2>

這兩個運算式都必須是數值(整數或小數)。

結果也是數字。

範例:

1 + 2

傳回3

-

<expression1> - <expression2>

這兩個運算式都必須是數值(整數或小數)。

結果也是數字。

範例:

2 - 1

傳回1

/

<expression1> / <expression2>

這兩個運算式都必須是數值(整數或小數)。

結果也是數字。

<expression2>不可以等於0 (傳回0)。

範例:

4 / 2

傳回2

*

<expression1> * <expression2>

這兩個運算式都必須是數值(整數或小數)。

結果也是數字。

範例:

3 * 4

傳回12

%

<expression1> % <expression2>

這兩個運算式都必須是數值(整數或小數)。

結果也是數字。

範例:

3 % 2

傳回1。

數學 math

是數值

<expression> is numeric

運算式的型別是整數或小數。

範例:

@ is numeric

為整數

<expression> is integer

運算式的型別是整數。

範例:

@ is integer

為小數

<expression> is decimal

運算式的型別是十進位。

範例:

@ is decimal

字串 string

+

<string> + <expression>
<expression> + <string>

它會串連兩個運算式。

一個運算式必須是鏈結字串。

範例:

"the current time is " + (now())

傳回「目前時間是2023-09-23T09:30:06.693Z」

(now()) + " is the current time"

傳回「2023-09-23T09:30:06.693Z為目前時間」

"a" + "b" + "c" + 1234

傳回「abc1234」。

日期 date

+

<expression> + <duration>

將期間附加至dateTime、dateTimeOnly或duration。

範例:

(toDateTime("2023-12-03T15:15:30Z")) + (toDuration("PT15M"))

傳回​dateTime 2023-12-03T15:30:30Z

(toDateTimeOnly("2023-12-03T15:15:30")) + (toDuration("PT15M"))

傳回​dateTimeOnly 2023-12-03T15:30:30

(now()) + (toDuration("PT1H"))

從目前時間後一小時傳回​dateTime (含UTC時區)

(toDuration("PT1H")) + (toDuration("PT1H"))

傳回​持續時間 PT2H

AI Knowledge Reference

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 is a complete reference of operators available in the Journey advanced expression editor, covering logical (and, or, not), comparison (==, !=, >, >=, <, <=, is null, is not null, has null), arithmetic (+, -, /, *, %), math type-check (is numeric, is integer, is decimal), string concatenation, and date arithmetic operators.

Intents:

  • Combine boolean conditions using logical operators and, or, and not
  • Check whether a field or expression value is null or not null using is null / is not null
  • Detect null values within a list using the has null operator
  • Compare numeric, datetime, and datetimeonly values using >, >=, <, <=, ==, and !=
  • Perform arithmetic on numeric values using +, -, /, *, and %
  • Add a duration to a dateTime, dateTimeOnly, or duration value using the + operator

Glossary:

  • Unary operator: An operator applied to a single operand; can be left-hand (e.g. not) or right-hand (e.g. is null) (product-specific)
  • Binary operator: An operator applied between two operands (e.g. and, ==, +) (product-specific)
  • has null: A right-hand unary operator that returns true if a list contains at least one null element (product-specific)
  • is numeric / is integer / is decimal: Type-check operators that return a boolean based on the numeric subtype of the expression (product-specific)

Guardrails:

  • When using multiplication (*), both operands must be the same numeric type (both integer or both decimal) — mixing types causes an error
  • When using the + operator for date arithmetic, the expression must be wrapped in parentheses to avoid parsing errors
  • Comparison operators (>, >=, <, <=) are only valid between compatible types: Datetime with Datetime, DatetimeOnly with DatetimeOnly, or numeric with numeric — any other combination is forbidden
  • An empty string "" is not considered null — has null returns false for a list containing ""
  • The == and != operators perform no data type control between operands

Terminology:

  • Canonical name: Operators — Acronym: none — variants: expression operators, journey operators
  • Synonyms: and = “logical AND”; or = “logical OR”; not = “logical NOT”; % = “modulo”
  • Do not confuse: is null (expression has no evaluated value) ≠ == null (not a valid syntax); has null (list contains null) ≠ is null (expression itself is null)

FAQ:

  • Q: Can I multiply an integer by a decimal directly? — No; both operands of * must be the same type. Use 3.0 * 4.0 (both decimal) or 3 * 4 (both integer).
  • Q: How do I add 15 minutes to a dateTime? — Use (toDateTime("...")) + (toDuration("PT15M")).
  • Q: What is the difference between is null and has null?is null checks whether a single expression has no evaluated value; has null checks whether a list contains at least one null element.
  • Q: Does "" has null return true? — No; an empty string is not considered null, so the result is false.
  • Q: Why does 3 * 4.0 cause an error? — The * operator requires both operands to be the same numeric type; mixing integer and decimal is not allowed.
recommendation-more-help
journey-optimizer-help