在只读分析引擎中,执行 SQL 运算时会出现一些字段类型不匹配导致的隐式转换,或者显式指定 CAST 函数时的类型转换的场景。只读分析引擎在不同版本中对其支持的情况有所区别,本文将详细列举类型转换的支持情况。
注意:
如果在 SQL 表达式中存在不同类型的值进行比较或者计算,则会触发隐式转换。在使用过程中会出现的所有隐式转换逻辑均受制于如下表所示的转换支持情况。如果存在不支持隐式转换的值进行比较或者计算等运算场景,则会提示不支持此类转换报错。
语法:
CAST (expression AS data_type)在1.2404.x 版本的只读分析引擎中,详细的转换类型支持情况如下表所示。
| 源/目标 | Binary | Char | Date | DateTime | Decimal | Double | Float | Real | Signed | Time | Unsigned | Year | 
| Bigint | ✓ | ✓ | × | × | ✓ | ✓ | × | ✓ | ✓ | × | ✓ | × | 
| Binary | ✓ | × | × | × | ✓ | ✓ | × | ✓ | ✓ | × | ✓ | × | 
| Date | ✓ | × | ✓ | ✓ | × | × | × | × | × | ✓ | × | × | 
| Datetime | ✓ | × | ✓ | ✓ | × | × | × | × | × | ✓ | × | × | 
| Decimal | ✓ | ✓ | × | × | ✓ | ✓ | × | ✓ | ✓ | × | ✓ | × | 
| Double | ✓ | ✓ | × | × | ✓ | ✓ | × | ✓ | × | × | × | × | 
| Float | ✓ | ✓ | × | × | ✓ | × | ✓ | ✓ | ✓ | × | ✓ | × | 
| Real | ✓ | ✓ | × | × | ✓ | ✓ | × | ✓ | × | × | × | × | 
| Signed | ✓ | ✓ | × | × | ✓ | ✓ | × | ✓ | ✓ | × | ✓ | × | 
| Time | × | × | × | × | × | × | × | × | × | × | × | × | 
| Unsigned | ✓ | ✓ | × | × | ✓ | ✓ | × | ✓ | ✓ | × | ✓ | × | 
| Year | ✓ | ✓ | × | × | ✓ | ✓ | × | ✓ | ✓ | × | ✓ | × | 
| Varchar | ✓ | ✓ | × | × | ✓ | ✓ | × | ✓ | ✓ | × | ✓ | × | 
在2.2410.x 版本的只读分析引擎中,详细的转换类型支持情况如下表所示。
|   源/目标 | Int /Bigint | Binary | Char | Date | DateTime | Decimal | Double | Float | Real | Signed | Time | Unsigned | Year | 
| Int/Bigint | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Binary | ✓ | ✓ | × | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Date | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Datetime | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Decimal | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Double | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Float | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Real | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Signed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Time | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Unsigned | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Year | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × | 
| Varchar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × |