写点什么

YashanDB CAST 函数

作者:YashanDB
  • 2025-04-22
    广东
  • 本文字数:1028 字

    阅读完需:约 3 分钟

本文内容来自 YashanDB 官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/开发手册/SQL参考手册/内置函数/CAST.html



CAST 函数将expr的值转换为指定的数据类型,并按新的类型返回结果。

YashanDB 支持如下情况的类型转换:


其中:

  • expr 的内容需符合目标类型的格式要求。

  • expr 的值不能超过目标类型的值域,如 10000 无法转换为 TINYINT 类型。

  • expr 的值为 NULL 时,函数返回 NULL。

  • 对于列存表中的 LOB 类型字段,若某行数据为行外存储,则无法使用本函数进行转换。

  • 当目标类型为 BOOLEAN 时,只有'TRUE'、'T'、'YES'、'Y'、'1'可转换为 TRUE,'FALSE'、'F'、'NO、'N'、'0'可转换为 FALSE,字符不分大小写。

  • 当 NUMBER 转换 BIT 时,函数将对 NUMBER 进行向下取整,且 NUMBER 数据的大小不能超过 64 位。

  • 当 TIME 转换 DATE 跟 TIMESTAMPS 时,取当天的日期来补齐年月日。

type_name

指定要转换的目标类型,可同时指定 size、scale、precision。

若目标类型为字符型数据时,可以指定其 size,若 expr 为字符串类型且长度大于指定的 size 会截断,为其他类型超过指定的 size,则转换失败并返回 Out of range 错误。

若目标类型为 CHAR 或 NCHAR 时,且语句中未指定其 size 时,不需要关注需要转换的原始数据类型,其预估 size 长度默认为 1。

若目标类型为 VARCHAR 时,且语句中未指定其 size,将根据 expr 的类型对 size 进行预估。对于字符串类型,其预估 size 为原字符串长度;对于其他类型,其预估 size 为该类型转为字符串的长度。

若目标类型为 NVARCHAR 时,须在语句中指定其 size,否则返回错误。

DEFAULT replace_expr ON CONVERSION ERROR

表示当对 expr 转换失败时,使用 replace_expr 值来进行转换。 replace_expr 可以为 NULL,字符串值和字面量,且必须能够转换为目标类型(转换类型支持,且转换内容符合格式要求)。

此语句可省略,则对 expr 转换失败时函数返回错误。

当 expr 的数据类型为 BIT、LOB 类型,或者 type_name 为 BIT、LOB 类型时,不允许指定此语句。

示例

SELECT CAST('345' AS FLOAT) cast1,CAST('345.2345' AS NUMBER(6,2)) cast2,CAST('345a' AS INT DEFAULT '' ON CONVERSION ERROR) cast3,CAST(SYSTIMESTAMP AS CHAR(100)) cast4FROM DUAL;      CAST1     CAST2    CAST3 CAST4                     
3.45E+002 345.23 2022-01-09 17:52:30.634370
SELECT CAST('abcdef' AS CHAR) cast1,CAST(1.23456 AS VARCHAR) cast2,CAST(NULL AS CHAR) cast3,CAST(NULL AS VARCHAR) cast4FROM DUAL;CAST1 CAST2 CAST3 CAST4
a 1.23456

复制代码


用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB CAST函数_yashandb_YashanDB_InfoQ写作社区