
# HetuEngine隐式转换对照表
在开启隐式转换功能后，当数据类型不匹配时会隐式转换，但并是不是所有的数据类型都支持隐式转换。以下为当前隐式转换功能支持的数据类型转换表：
表1隐式转换对照表 
| -                        | BOOLEAN | TINYINT | SMALLINT | INTEGER | BIGINT | REAL | DOUBLE | DECIMAL | VARCHAR |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| BOOLEAN                  | \\      | Y(1)    | Y        | Y       | Y      | Y    | Y      | Y       | Y(2)    |
| TINYINT                  | Y(3)    | \\      | Y        | Y       | Y      | Y    | Y      | Y       | Y       |
| SMALLINT                 | Y       | Y(4)    | \\       | Y       | Y      | Y    | Y      | Y       | Y       |
| INTEGER                  | Y       | Y       | Y        | \\      | Y      | Y    | Y      | Y       | Y       |
| BIGINT                   | Y       | Y       | Y        | Y       | \\     | Y    | Y      | Y       | Y       |
| REAL                     | Y       | Y       | Y        | Y       | Y      | \\   | Y      | Y(5)    | Y       |
| DOUBLE                   | Y       | Y       | Y        | Y       | Y      | Y    | \\     | Y       | Y       |
| DECIMAL                  | Y       | Y       | Y        | Y       | Y      | Y    | Y      | \\(6)   | Y       |
| VARCHAR                  | Y(7)    | Y       | Y        | Y       | Y      | Y    | Y      | Y(8)    | \\      |
| CHAR                     | N       | N       | N        | N       | N      | N    | N      | N       | Y       |
| VARBINARY                | N       | N       | N        | N       | N      | N    | N      | N       | N       |
| JSON                     | N       | N       | N        | N       | N      | N    | N      | N       | Y       |
| DATE                     | N       | N       | N        | N       | N      | N    | N      | N       | Y       |
| TIME                     | N       | N       | N        | N       | N      | N    | N      | N       | Y       |
| TIME WITH TIME ZONE      | N       | N       | N        | N       | N      | N    | N      | N       | Y       |
| TIMESTAMP                | N       | N       | N        | N       | N      | N    | N      | N       | Y       |
| TIMESTAMP WITH TIME ZONE | N       | N       | N        | N       | N      | N    | N      | N       | Y       |
   
表2隐式转换对照表（续） 
| -                        | CHAR | VARBINARY | JSON | DATE  | TIME  | TIME WITH TIME ZONE | TIMESTAMP | TIMESTAMP WITH TIME ZONE |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| BOOLEAN                  | N    | N         | Y    | N     | N     | N                   | N         | N                        |
| TINYINT                  | N    | N         | Y    | N     | N     | N                   | N         | N                        |
| SMALLINT                 | N    | N         | Y    | N     | N     | N                   | N         | N                        |
| INTEGER                  | N    | N         | Y    | N     | N     | N                   | N         | N                        |
| BIGINT                   | N    | N         | Y    | N     | N     | N                   | N         | N                        |
| REAL                     | N    | N         | Y    | N     | N     | N                   | N         | N                        |
| DOUBLE                   | N    | N         | Y    | N     | N     | N                   | N         | N                        |
| DECIMAL                  | N    | N         | Y    | N     | N     | N                   | N         | N                        |
| VARCHAR                  | Y(9) | Y         | Y    | Y(10) | Y(11) | Y(12)               | Y(13)     | Y                        |
| CHAR                     | \\   | N         | N    | N     | N     | N                   | N         | N                        |
| VARBINARY                | N    | \\        | N    | N     | N     | N                   | N         | N                        |
| JSON                     | N    | N         | \\   | N     | N     | N                   | N         | N                        |
| DATE                     | N    | N         | Y    | \\    | N     | N                   | Y(14)     | Y                        |
| TIME                     | N    | N         | N    | N     | \\    | Y(15)               | Y(16)     | Y                        |
| TIME WITH TIME ZONE      | N    | N         | N    | N     | Y     | \\                  | Y         | Y                        |
| TIMESTAMP                | N    | N         | N    | Y     | Y     | Y                   | \\        | Y                        |
| TIMESTAMP WITH TIME ZONE | N    | N         | N    | Y     | Y     | Y                   | Y         | \\                       |
   
![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
1. BOOLEAN-\>NUMBER：结果只会是0/1。
2. BOOLEAN-\>VARCHAR：字符结果只会是"TRUE"或"FALSE"。
3. NUMBER -\> BOOLEAN：0就是false，非0就是true。
4. BIG PRECISION -\> SMALL：不能大于目标类型的取值范围，否则会报错。
5. REAL/FLOAT -\>DECIMAL：目标类型的整数位必须大于或等于REAL/FLOAT整数位，否则转换报错，小数位不足会截断。
6. DECIMAL-\>DECIMAL：目标类型整数位的范围必须大于等于源类型，否则转换失败，小数位不足会截断。
7. VARCHAR-\>BOOLEAN：字符只有 '0'，'1'，'TRUE'，'FALSE' 可转换。
8. VARCHAR-\>DECIMAL：如果小数位大于目标decimal的小数位，则会发生截断，如果整数位超过目标decimal的范围则报错。
9. VARCHAR-\>CHAR：如果VARCHAR长度超过目标长度，则会截断。
10. VARCHAR-\>DATE：仅支持按照"-"分隔的日期，例如2000-01-01。
11. VARCHAR-\>TIME：仅支持严格的日期格式：HH:MM:SS.XXX。
12. VARCHAR-\>TIME ZONE：仅支持严格的格式，例如01:02:03.456 America/Los_Angeles。
13. VARCHAR-\>TIMESTAMP：仅支持严格的格式：YYYY-MM-DD HH:MM:SS.XXX。
14. DATE-\>TIMESTAMP：自动补齐时间，补零 '2010-01-01' -\> 2010-01-01 00:00:00.000。
15. TIME-\>TIME WITH TIME ZONE：自动补齐时区。
16. TIME-\>TIMESTAMP：自动补齐日期，取默认值1970-01-01。
 
