Loading

ES|QL TO_LONG function

Embedded
field
Input value. The input can be a single- or multi-valued column or an expression.
base

(Optional) Radix or base used to convert the input value.When a base is specified the input type must be keyword or text.

Converts the input value to a long. If the input parameter is of a date type, its value will be interpreted as milliseconds since the Unix epoch, converted to long. Boolean true will be converted to long 1, false to 0.

When given two arguments, a string value and a whole number base, the string is parsed as a long in the given base. If parsing fails a warning is generated as described below and the result is null. A leading '0x' prefix is allowed for base 16.

field base result
boolean long
counter_integer long
counter_long long
date long
date_nanos long
double long
geohash long
geohex long
geotile long
integer long
keyword integer long
keyword long long
keyword unsigned_long long
keyword long
long long
text integer long
text long long
text unsigned_long long
text long
unsigned_long long
ROW str1 = "2147483648", str2 = "2147483648.2", str3 = "foo"
| EVAL long1 = TO_LONG(str1), long2 = TO_LONG(str2), long3 = TO_LONG(str3)
		
str1:keyword str2:keyword str3:keyword long1:long long2:long long3:long
2147483648 2147483648.2 foo 2147483648 2147483648 null

Note in this example the last conversion of the string isn’t possible. When this happens, the result is a null value. In this case a Warning header is added to the response. The header will provide information on the source of the failure:

"Line 1:113: evaluation of [TO_LONG(str3)] failed, treating result as null. Only first 20 failures recorded."

A following header will contain the failure reason and the offending value:

"java.lang.NumberFormatException: For input string: "foo""

ROW str1 = "0x32", str2 = "31"
| EVAL long1 = TO_LONG(str1, 16), long2 = TO_LONG(str2, 13)
| KEEP str1, long1, str2, long2
		
str1:keyword long1:long str2:keyword long2:long
0x32 50 31 40

This example demonstrates parsing a base 16 value and a base 13 value.

ROW str1 = "Hazelnut"
| EVAL long1 = TO_LONG(str1, 36), fail1 = TO_LONG(str1, 10)
		
str1:keyword long1:long fail1:long
Hazelnut 1356099454469 null

This example demonstrates parsing a string that is valid in base 36 but invalid in base 10.Observe in the second case a warning is generated and null is returned.