📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

変換関数



このページでは、TiDB Cloud Lake の変換関数について、参照しやすいように機能別に整理して包括的に説明します。

型変換関数

関数説明例
CAST値を指定したデータ型に変換しますCAST('123' AS INT) → 123
TRY_CAST値を指定したデータ型に安全に変換し、失敗した場合は NULL を返しますTRY_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'

数値変換関数

関数説明例
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

バイナリおよび特殊変換関数

関数説明例
TO_BINARY値を BINARY 型に変換しますTO_BINARY('abc') → binary value
TRY_TO_BINARY値を BINARY 型に安全に変換し、失敗した場合は NULL を返しますTRY_TO_BINARY('abc') → binary value
TO_HEX値を 16 進文字列に変換します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

値をある型から別の型に変換する際は、次の点に注意してください。

  • 浮動小数点数、10 進数、または文字列から整数、あるいは小数部を持つ 10 進数に変換する場合、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 へのキャストでは、ソース文字列に整数値が含まれている必要があります。

    ソース型ターゲット型
    StringDecimal
    FloatDecimal
    DecimalDecimal
    FloatInt
    DecimalInt
    String (Int)Int
  • TiDB Cloud Lake では、式をさまざまな日付および時刻形式に変換するための関数も多数提供しています。詳細は、日付・時刻関数 を参照してください。

このページは役に立ちましたか?