ES|QL 隐式类型转换
编辑ES|QL 隐式类型转换
编辑通常,用户会在查询中输入 date
、 date_period
、 time_duration
、 ip
或 version
作为简单字符串,以便在谓词、函数或表达式中使用。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
隐式类型转换示例
编辑隐式类型转换会自动将字符串字面量转换为目标数据类型。这允许用户在查询中为 date
、 date_period
、 time_duration
、 ip
和 version
等类型指定字符串值。
第一个查询可以不用调用 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 |
是 |
是 |
是 |
否 |
标量函数包括
运算符包括