Type to search.

ES|QL implicit casting

Serverless

Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud.

Availability

  • Generally available

    This functionality is generally available and ready for production usage.

Serverless interfaces and procedures might differ from classic Elastic Stack deployments.

Stack

The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats.

Availability

  • Generally available

    This functionality is generally available and ready for production usage.

Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments.

This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.

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. ES|QL 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 don’t 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.

ES|QL
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 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:

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

The following table details which ES|QL 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: