
# 类型转换函数
本文介绍类型转换函数的语法规则，包括参数解释、函数示例等。
#### 函数列表
表1类型转换函数 
| 函数                                                                                                                                                                          | 描述                                                          |
|:---|:---|
| [cast函数] | 将值从一种数据类型转换为另一种数据类型，并将数据类型提供给动态参数。如果某个值转换失败，终止查询操作并抛出异常。    |
| [try_cast 函数]                                                                                              | 将值从一种数据类型转换为另一种数据类型，并将数据类型提供给动态参数。如果某个值转换失败，捕获异常并使该值返回null。 |
| [typeof 函数]                                                                                                | 返回指定字段的数据类型。                                                |
   
 #### cast函数
将值从一种数据类型转换为另一种数据类型，并将数据类型提供给动态参数。
在允许表达式的任何地方都允许使用转换表达式。
语法：CAST(Expression as Datatype)
表2参数说明 
| 参数名称       | 描述       | 类型                                                                                              | 是否必选 |
|:---|:---|:---|:---|
| expression | 源类型的表达式。 | 任意                                                                                              | 是    |
| Datatype   | 目标类型。    | SQL数据类型，可选值为bigint、varchar、double、double precision、boolean、timestamp、decimal、integer、char、date。 | 是    |
   
表3索引数据类型和SQL数据类型的对应关系 
| 索引的数据类型 | SQL的数据类型                |
|:---|:---|
| long    | bigint                  |
| string  | varchar                 |
| float   | double或double precision |
   
返回值类型：目标数据类型。
示例：select cast(time as date)
表4查询分析结果 
| 类型 | 查询语句               | 返回结果                    |
|:---|:---|:---|
| 场景 | cast(time as date) | 2023-08-31 23:11:17.000 |
   
 #### try_cast 函数
将值从一种数据类型转换为另一种数据类型，并将数据类型提供给动态参数。如果某个值转换失败，捕获异常并使该值返回null。
语法：TRY_CAST(Expression as Datatype)
要将表达式转换到的数据类型是目标类型。要从中转换的表达式的数据类型是源类型。
表5参数说明 
| 参数名称       | 描述       | 类型                                                                                              | 是否必选 |
|:---|:---|:---|:---|
| expression | 源类型的表达式。 | 任意                                                                                              | 是    |
| Datatype   | 目标类型。    | SQL数据类型，可选值为bigint、varchar、double、double precision、boolean、timestamp、decimal、integer、char、date。 | 是    |
   
返回值类型：目标数据类型。
示例：select try_cast(time as date)
表6查询分析结果 
| 类型   | 场景                     |
|:---|:---|
| 查询语句 | try_cast(time as date) |
| 返回结果 | null                   |
   
 #### typeof 函数
返回指定字段或表达式结果的数据类型。
语法：typeof(expression)
表7参数说明 
| 参数名称       | 描述               | 类型 | 是否必选 |
|:---|:---|:---|:---|
| expression | 要进行结果类型判断的字段或表达式 | 任意 | 是    |
   
返回值类型：目标数据类型。
示例：select typeof(from_unixtime(__time)) as t
表8查询分析结果 
| 类型   | 场景                            |
|:---|:---|
| 查询语句 | typeof(from_unixtime(__time)) |
| 返回结果 | timestamp(3) with time zone   |
   
