全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

转换函数

更新时间:2017-06-07 13:26:11

CAST(expr AS type)

将某种数据类型的表达式显式转换为另一种数据类型。

expr字段值转换为type数据类型。数据类型参见数据类型章节。

  1. Oceanbase>SELECT CAST(123 AS BOOL);
  2. +-------------------+
  3. | CAST(123 AS bool) |
  4. +-------------------+
  5. | 1 |
  6. +-------------------+
  7. 1 row in set (0.00 sec)

参数说明:

expr:表示任何有效的SQL表达式。

AS: 用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。type: 表示目标系统所提供的数据类型。可以是以下值其中的一个:

  • CHAR[(N)] (CHAR[N]会使 cast 使用该参数的不多于N 个字符)

  • DATE

  • DATETIME

  • DECIMAL

  • SIGNED [INTEGER]

  • TIME

  • UNSIGNED [INTEGER]

在使用CAST函数进行数据类型转换时,在下列情况下能够被接受:

  • 两个表达式的数据类型完全相同;

  • 两个表达式可隐式转换;

  • 必须显式转换数据类型。

如果试图进行不可能的转换,OceanBase将显示一条错误信息。

如果转换时没有指定数据类型的长度,则使用 OceanBase系统内部最大长度。如varchar是262,143字节,number是65个bit位的浮动精度。

支持带符号和无符号的64比特值的运算。若你正在使用数字操作符 (如 +) 而其中一个操作数为无符号整数,则结果为无符号。可使用SIGNED 和UNSIGNED cast操作符来覆盖它。将运算分别派给带符号或无符号64比特整数。

假如任意一个操作数为一个浮点值,则结果为一个浮点值。

  1. Oceanbase>select cast(1-2 as unsigned), cast(cast(1-2 as unsigned) as signed);
  2. +-----------------------+---------------------------------------+
  3. | cast(1-2 as unsigned) | cast(cast(1-2 as unsigned) as signed) |
  4. +-----------------------+---------------------------------------+
  5. | 18446744073709551615 | -1 |
  6. +-----------------------+---------------------------------------+
  7. 1 row in set (0.00 sec)
  8. Oceanbase>SELECT CAST(1 AS UNSIGNED) - 2.0;
  9. +---------------------------+
  10. | CAST(1 AS UNSIGNED) - 2.0 |
  11. +---------------------------+
  12. | -1.0 |
  13. +---------------------------+
  14. 1 row in set (0.00 sec)
  15. Oceanbase>select cast(0 as date);
  16. +-----------------+
  17. | cast(0 as date) |
  18. +-----------------+
  19. | 0000-00-00 |
  20. +-----------------+
  21. 1 row in set (0.00 sec)
本文导读目录