elasticsearch/docs/reference/query-languages/esql/esql-implicit-casting.md
Colleen McGinnis b7e3a1e14b
[docs] Migrate docs from AsciiDoc to Markdown (#123507)
* delete asciidoc files

* add migrated files

* fix errors

* Disable docs tests

* Clarify release notes page titles

* Revert "Clarify release notes page titles"

This reverts commit 8be688648d.

* Comment out edternal URI images

* Clean up query languages landing pages, link to conceptual docs

* Add .md to url

* Fixes inference processor nesting.

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
Co-authored-by: Liam Thompson <leemthompo@gmail.com>
Co-authored-by: Martijn Laarman <Mpdreamz@gmail.com>
Co-authored-by: István Zoltán Szabó <szabosteve@gmail.com>
2025-02-27 17:56:14 +01:00

2.8 KiB
Raw Blame History

navigation_title mapped_pages
Implicit casting
https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-implicit-casting.html

{{esql}} implicit casting [esql-implicit-casting]

Often users will input date, date_period, time_duration, ip or version as simple strings in their queries for use in predicates, functions, or expressions. {{esql}} provides type conversion functions to explicitly convert these strings into the desired data types.

Without implicit casting users must explicitly code these to_X functions in their queries, when string literals dont match the target data types they are assigned or compared to. Here is an example of using to_datetime to explicitly perform a data type conversion.

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

Implicit casting example [esql-implicit-casting-example]

Implicit casting automatically converts string literals to the target data type. This allows users to specify string values for types like date, date_period, time_duration, ip and version in their queries.

The first query can be coded without calling the to_datetime function, as follows:

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

Operations that support implicit casting [esql-implicit-casting-supported-operations]

The following table details which {{esql}} operations support implicit casting for different data types.

ScalarFunctions Operators GroupingFunctions AggregateFunctions
DATE Y Y Y N
DATE_PERIOD/TIME_DURATION Y N Y N
IP Y Y Y N
VERSION Y Y Y N
BOOLEAN Y Y Y N

ScalarFunctions includes:

Operators includes: