Skip to content

Latest commit

 

History

History
71 lines (51 loc) · 3.1 KB

cast-functions-and-operators.md

File metadata and controls

71 lines (51 loc) · 3.1 KB
title aliases summary
Cast 函数和操作符
/docs-cn/dev/functions-and-operators/cast-functions-and-operators/
/docs-cn/dev/reference/sql/functions-and-operators/cast-functions-and-operators/
Cast 函数和操作符用于将某种数据类型的值转换为另一种数据类型。TiDB 支持使用 MySQL 8.0 中提供的所有 Cast 函数和操作符。

Cast 函数和操作符

Cast 函数和操作符用于将某种数据类型的值转换为另一种数据类型。TiDB 支持使用 MySQL 8.0 中提供的所有 Cast 函数和操作符

Cast 函数和操作符表

函数和操作符名 功能描述
BINARY 将一个字符串转换成一个二进制字符串
CAST() 将一个值转换成一个确定类型
CONVERT() 将一个值转换成一个确定类型

注意:

TiDB 和 MySQL 对于 SELECT CAST(MeN AS CHAR)(或者等价的 SELECT CONVERT(MeM, CHAR))的结果显示不一致,其中 MeN 是用科学计数法表示的双精度浮点数。MySQL 在 -15 <= N <= 14 时显示完整数值,在 N < -15N > 14 时显示科学计数法。而 TiDB 始终显示完整数值。例如,MySQL 对于 SELECT CAST(3.1415e15 AS CHAR) 的显示结果为 3.1415e15,而 TiDB 的显示结果为 3141500000000000

BINARY

BINARY 运算符从 MySQL 8.0.27 版本起已被废弃。建议在 TiDB 和 MySQL 中都改用 CAST(... AS BINARY)

CAST

CAST() 函数用于将一个表达式的值转换为指定的数据类型。

此外,你还可以将该函数用于创建多值索引

示例:

SELECT CAST(0x54694442 AS CHAR);
+--------------------------+
| CAST(0x54694442 AS CHAR) |
+--------------------------+
| TiDB                     |
+--------------------------+
1 row in set (0.0002 sec)

CONVERT

CONVERT() 函数用于在字符集之间进行转换。

示例:

SELECT CONVERT(0x616263 USING utf8mb4);
+---------------------------------+
| CONVERT(0x616263 USING utf8mb4) |
+---------------------------------+
| abc                             |
+---------------------------------+
1 row in set (0.0004 sec)

MySQL 兼容性

  • TiDB 不支持对空间类型 (SPATIAL) 进行转换操作。更多信息,请参考 #6347
  • TiDB 不支持在 CAST() 中使用 AT TIME ZONE。更多信息,请参考 #51742
  • CAST(24 AS YEAR) 在 TiDB 中返回的结果为两位数字,而在 MySQL 中返回的结果为四位数字。更多信息,请参考 #29629