📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

转换函数



本页按功能分类,全面概述了 TiDB Cloud Lake 中的转换函数,便于参考。

类型转换函数

Function描述示例
CAST将值转换为指定的数据类型CAST('123' AS INT) → 123
TRY_CAST安全地将值转换为指定的数据类型,失败时返回 NULLTRY_CAST('abc' AS INT) → NULL
TO_BOOLEAN将值转换为 BOOLEAN 类型TO_BOOLEAN('true') → true
TO_STRING将值转换为 STRING 类型TO_STRING(123) → '123'
TO_VARCHAR将值转换为 VARCHAR 类型TO_VARCHAR(123) → '123'
TO_TEXT将值转换为 TEXT 类型TO_TEXT(123) → '123'

数值转换函数

Function描述示例
TO_INT8将值转换为 INT8 类型TO_INT8('123') → 123
TO_INT16将值转换为 INT16 类型TO_INT16('123') → 123
TO_INT32将值转换为 INT32 类型TO_INT32('123') → 123
TO_INT64将值转换为 INT64 类型TO_INT64('123') → 123
TO_UINT8将值转换为 UINT8 类型TO_UINT8('123') → 123
TO_UINT16将值转换为 UINT16 类型TO_UINT16('123') → 123
TO_UINT32将值转换为 UINT32 类型TO_UINT32('123') → 123
TO_UINT64将值转换为 UINT64 类型TO_UINT64('123') → 123
TO_FLOAT32将值转换为 FLOAT32 类型TO_FLOAT32('123.45') → 123.45
TO_FLOAT64将值转换为 FLOAT64 类型TO_FLOAT64('123.45') → 123.45

二进制和专用转换函数

Function描述示例
TO_BINARY将值转换为 BINARY 类型TO_BINARY('abc') → binary value
TRY_TO_BINARY安全地将值转换为 BINARY 类型,失败时返回 NULLTRY_TO_BINARY('abc') → binary value
TO_HEX将值转换为十六进制字符串TO_HEX(255) → 'FF'
TO_VARIANT将值转换为 VARIANT 类型TO_VARIANT('{"a": 1}') → {"a": 1}
BUILD_BITMAP从整数数组构建位图BUILD_BITMAP([1,2,3]) → bitmap value
TO_BITMAP将值转换为 BITMAP 类型TO_BITMAP([1,2,3]) → bitmap value

将值从一种类型转换为另一种类型时,请注意以下事项:

  • 当从浮点数、小数或字符串转换为整数,或转换为带小数部分的小数时,TiDB Cloud Lake 会将值四舍五入到最接近的整数。这由设置 numeric_cast_option 决定(默认值为 'rounding'),该设置控制数值类型转换操作的行为。当 numeric_cast_option 显式设置为 'truncating' 时,TiDB Cloud Lake 会截断小数部分,丢弃所有小数值。

    SELECT CAST('0.6' AS DECIMAL(10, 0)), CAST(0.6 AS DECIMAL(10, 0)), CAST(1.5 AS INT); ┌──────────────────────────────────────────────────────────────────────────────────┐ │ cast('0.6' as decimal(10, 0)) │ cast(0.6 as decimal(10, 0)) │ cast(1.5 as int32) │ ├───────────────────────────────┼─────────────────────────────┼────────────────────┤ │ 1 │ 1 │ 2 │ └──────────────────────────────────────────────────────────────────────────────────┘ SET numeric_cast_option = 'truncating'; SELECT CAST('0.6' AS DECIMAL(10, 0)), CAST(0.6 AS DECIMAL(10, 0)), CAST(1.5 AS INT); ┌──────────────────────────────────────────────────────────────────────────────────┐ │ cast('0.6' as decimal(10, 0)) │ cast(0.6 as decimal(10, 0)) │ cast(1.5 as int32) │ ├───────────────────────────────┼─────────────────────────────┼────────────────────┤ │ 0 │ 0 │ 1 │ └──────────────────────────────────────────────────────────────────────────────────┘

    下表汇总了数值类型转换操作,展示了不同源数值数据类型与目标数值数据类型之间的转换可能性。请注意,其中还说明了从 String 转换为 Integer 的要求,即源字符串必须包含一个整数值。

    源类型目标类型
    字符串Decimal
    floatDecimal
    DecimalDecimal
    floatInt
    DecimalInt
    字符串 (整数型)Int
  • TiDB Cloud Lake 还提供了多种函数,用于将表达式转换为不同的日期和时间格式。更多信息,请参见 日期与时间函数。

文档内容是否有帮助?