类型转换函数

如果您在查询与分析数据时需要区分更细维度的数据类型,您可以在查询与分析语句中使用类型转换函数转换数据的数据类型。

日志服务支持如下类型转换函数。

重要 在日志服务分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如:'status'表示字符串status,status"status"表示日志字段status。

函数名称

语法

说明

支持SQL

支持SPL

cast函数

cast(x as type)

转换x的数据类型。

使用cast函数转换数据类型时,如果某个值转换失败,将终止整个查询与分析操作。

try_cast函数

try_cast(x as type)

转换x的数据类型。

使用try_cast函数转换数据类型时,如果某个值转换失败,该值返回NULL,并跳过该值继续处理。

说明

日志中可能有脏数据,建议使用try_cast函数,避免因脏数据造成整个查询与分析操作失败。

×

typeof函数

typeof(x)

返回x的数据类型。

×

cast函数

cast函数用于转换x的数据类型。使用cast函数转换数据类型时,如果某个值转换失败,将终止整个查询与分析操作。

语法

cast(x as type)

参数说明

参数

说明

x

参数值可以为任意类型。

type

SQL数据类型,可选值为bigint、varchar、double、boolean、timestamp、decimal、array或map。

例如cast(json_parse(key) as array(varchar))

索引数据类型和SQL数据类型的映射关系,请参见附录:数据类型映射关系

返回值类型

由您配置的type参数决定。

示例

SQL

将数字1转换为boolean格式。

  • 查询和分析语句

    * | select cast(1 as boolean)
  • 查询和分析结果cast

SPL

将数字1转换为boolean格式。

  • 查询和分析语句

* | extend a = cast(1 as boolean)
  • 查询和分析结果image.png

try_cast函数

try_cast函数用于转换x的数据类型。使用try_cast函数转换数据类型时,如果某个值转换失败,该值返回NULL,并跳过该值继续处理。

语法

try_cast(x as type)

参数说明

参数

说明

x

参数值可以为任意类型。

type

SQL数据类型,可选值为bigint、varchar、double、boolean、timestamp、decimal、array或map。

例如try_cast(json_parse(key) as map(varchar, varchar))

索引数据类型和SQL数据类型的映射关系,请参见附录:数据类型映射关系

返回值类型

由您配置的type参数决定。

示例

uid字段值转换为varchar类型。

  • 查询和分析语句

    * | select try_cast(uid as varchar)
  • 查询和分析结果try_cast

typeof函数

typeof函数用于返回x的数据类型。

语法

typeof(x)

参数说明

参数

说明

x

参数值可以为任意数据类型。

返回值类型

varchar类型。

示例

判断request_time字段值的数据类型。

  • 查询和分析语句

    * |SELECT typeof(request_time)
  • 查询和分析结果typeof

附录:数据类型映射关系

索引数据类型和SQL数据类型的对应关系如下表所示:

索引的数据类型

SQL的数据类型

long

bigint

text

varchar

double

double

json

varchar