ES|QL 隐式类型转换

编辑

通常,用户会在查询中输入 datedate_periodtime_durationipversion 作为简单字符串,以便在谓词、函数或表达式中使用。ES|QL 提供了 类型转换函数,可以将这些字符串显式转换为所需的数据类型。

如果没有隐式类型转换,当字符串字面量与它们被赋值或比较的目标数据类型不匹配时,用户必须在查询中显式编写这些 to_X 函数。以下是一个使用 to_datetime 显式执行数据类型转换的示例。

FROM employees
| EVAL dd_ns1=date_diff("day", to_datetime("2023-12-02T11:00:00.00Z"), birth_date)
| SORT emp_no
| KEEP dd_ns1
| LIMIT 1

隐式类型转换示例

编辑

隐式类型转换会自动将字符串字面量转换为目标数据类型。这允许用户在查询中为 datedate_periodtime_durationipversion 等类型指定字符串值。

第一个查询可以不用调用 to_datetime 函数进行编码,如下所示:

FROM employees
| EVAL dd_ns1=date_diff("day", "2023-12-02T11:00:00.00Z", birth_date)
| SORT emp_no
| KEEP dd_ns1
| LIMIT 1

支持隐式类型转换的操作

编辑

下表详细说明了 ES|QL 的哪些操作支持不同数据类型的隐式类型转换。

标量函数 运算符 分组函数 聚合函数

DATE

DATE_PERIOD/TIME_DURATION

IP

VERSION

BOOLEAN

标量函数包括

运算符包括