Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›ES|QL ›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

Д

Д

Д

Н

Скалярные функции включают:

  • Условные функции и выражения
  • Функции даты и времени
  • Функции IP

Операторы включают:

  • Бинарные операторы
  • Унарный оператор
  • Оператор IN

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/esql-implicit-casting.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API