注意:如果在 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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | × |