
# 强制转换函数
表1强制转换函数列表 
| MySQL数据库  | GaussDB数据库 | 差异                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| CAST()    | 支持，存在差异    | - GaussDB不支持使用CAST(expr AS CHAR\[(N)\] charset_info或者CAST(expr AS NCHAR\[(N)\])转换字符集。  - GaussDB支持使用CAST(expr AS FLOAT\[(p)\])或CAST(expr AS DOUBLE)将表达式转换为浮点类型，MySQL 5.7版本不支持此转换。  - GaussDB不支持使用CAST(expr AS JSON)将表达式转换为JSON。  - 对于CAST嵌套子查询场景，如果子查询语句返回的是FLOAT类型，GaussDB返回的是准确的数值，MySQL 5.7版本返回失真数值，BINARY函数使用CAST实现，同理。 ``` --GaussDB m_db=# CREATE TABLE sub_query_table(myfloat float) DISTRIBUTE BY REPLICATION; CREATE TABLE m_db=# INSERT INTO sub_query_table(myfloat) VALUES (1.23); INSERT 0 1 m_db=# SELECT binary(SELECT myfloat FROM sub_query_table) FROM sub_query_table; binary -------- 1.23 (1 row) m_db=# SELECT cast((SELECT myfloat FROM sub_query_table) AS char); cast ------ 1.23 (1 row) --MySQL 5.7 mysql> CREATE TABLE sub_query_table(myfloat float); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO sub_query_table(myfloat) VALUES (1.23); Query OK, 1 row affected (0.00 sec) mysql> SELECT binary(SELECT myfloat FROM sub_query_table) FROM sub_query_table; +-----------------------------------------------+ | binary(SELECT myfloat FROM sub_query_table)   | +-----------------------------------------------+ | 1.2300000190734863                            | +-----------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT cast((SELECT myfloat FROM sub_query_table) AS char); +------------------------------------------------------+ | cast((SELECT myfloat FROM sub_query_table) AS char)  | +------------------------------------------------------+ | 1.2300000190734863                                   | +------------------------------------------------------+ 1 row in set (0.00 sec) ```    |
| CONVERT() | 支持，存在差异    | - GaussDB不支持使用CONVERT(expr, CHAR\[(N)\] charset_info或者CAST(expr, NCHAR\[(N)\])转换字符集。  - GaussDB支持使用CONVERT(expr, FLOAT\[(p)\])或CONVERT(expr, DOUBLE)将表达式转换为浮点类型，MySQL 5.7版本不支持此转换。    - GaussDB不支持使用CONVERT(expr, JSON)将表达式转换为JSON。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
