ES|QLの暗黙の型変換
ユーザーはしばしば、datetime
、ip
、version
、または地理空間オブジェクトを、述語、関数、または式で使用するためにクエリ内で単純な文字列として入力します。ES|QLは、これらの文字列を目的のデータ型に明示的に変換するためのtype conversion functionsを提供します。
暗黙の型変換がない場合、ユーザーは文字列リテラルが割り当てられたまたは比較されるターゲットデータ型と一致しないときに、クエリ内でこれらのto_X
関数を明示的にコーディングする必要があります。以下は、to_datetime
を使用してデータ型変換を明示的に実行する例です。
Esql
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
暗黙の型変換は、文字列リテラルをターゲットデータ型に自動的に変換することによって、使いやすさを向上させます。これは、ターゲットデータ型がdatetime
、ip
、version
または地理空間である場合に最も便利です。これらをクエリ内で文字列として指定するのは自然です。
最初のクエリは、to_datetime
関数を呼び出さずにコーディングできます。以下のように:
Esql
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操作を詳細に示しています。
スカラ関数 | バイナリ比較 | 算術演算 | INリスト述語 | 集約関数 | ||
---|---|---|---|---|---|---|
DATETIME | Y | Y | Y | Y | N | |
DOUBLE | Y | N | N | N | N | |
LONG | Y | N | N | N | N | |
INTEGER | Y | N | N | N | N | |
IP | Y | Y | Y | Y | N | |
VERSION | Y | Y | Y | Y | N | |
GEO_POINT | Y | N | N | N | N | |
GEO_SHAPE | Y | N | N | N | N | |
CARTESIAN_POINT | Y | N | N | N | N | |
CARTESIAN_SHAPE | Y | N | N | N | N | |
BOOLEAN | Y | Y | Y | Y | N |