CAST 函数用于将源数据类型的表达式显式转换为另一种数据类型。

语法

  1. CAST (expr AS type_name )

参数

参数

说明

expr

列名或者表达式。

AS

用于分隔两个参数,在 AS 之前的是要处理的数据,在 AS 之后是要转换的数据类型。

type_name

数据类型为 OceanBase 的 内建数据类型

返回类型

返回与 type_name 相同的类型。

下表显示了哪些数据类型可以转换为其他内置数据类型:

from BINARY_FLOAT, BINARY_DOUBLE

from CHAR, VARCHAR2

from NUMBER

1

from DATETIME/INTERVAL

from RAW

from NCHAR, NVARCHAR2

to BINARY_FLOAT, BINARY_DOUBLE

yes

yes

yes

no

no

yes

to CHAR, VARCHAR2

yes

yes

yes

yes

yes

no

to NUMBER

yes

yes

yes

no

no

yes

to DATETIME, INTERVAL

no

yes

no

yes

no

no

to RAW

yes

yes

yes

no

yes

no

to NCHAR, NVARCHAR2

yes

no

yes

yes

yes

yes

1To DATETIME/INTERVAL 数据类型包括 DATETIMESTAMPTIMESTAMP WITH TIMEZONEINTERVAL DAY TO SECONDINTERVAL YEAR TO MONTH

示例

执行以下语句:

  1. SELECT CAST('123' AS INT),CAST(1 AS VARCHAR2(10)),CAST('22-OCT-1997' AS TIMESTAMP WITH LOCAL TIME ZONE)
  2. AS RESULT FROM DUAL;

说明

此函数会受 NLS_DATE_FORMAT 格式的影响,建议先执行如下语句更改 NLS_DATE_FORMAT 格式:ALTER SESSION SET N``LS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

查询结果如下:

  1. +------------------+-----------------------+----------------------------+
  2. | CAST('123'ASINT) | CAST(1ASVARCHAR2(10)) | RESULT |
  3. +------------------+-----------------------+----------------------------+
  4. | 123 | 1 | 1997-10-22 00:00:00.000000 |
  5. +------------------+-----------------------+----------------------------+