OceanBase 轉換函數

2021-06-09 14:40 更新

CAST

聲明

?CAST(expr AS type)?

說明

將某種數據類型的表達式顯式轉換為另一種數據類型。

expr字段值轉換為type?數據類型。

參數說明

  • expr:表示任何有效的 SQL 表達式。
  • AS:用于分隔兩個參數,在 AS 之前的是要處理的數據,在 AS 之后是要轉換的數據類型。
  • type:表示目標系統所提供的數據類型??梢允且韵轮灯渲械囊粋€:
    • DATE
    • DATETIME
    • DECIMAL
    • SIGNED [INTEGER]
    • TIME
    • UNSIGNED [INTEGER]

在使用 CAST 函數進行數據類型轉換時,在下列情況下能夠被接受:

  • 兩個表達式的數據類型完全相同
  • 兩個表達式可隱式轉換
  • 必須顯式轉換數據類型

如果試圖進行不可能的轉換,OceanBase 數據庫將顯示一條錯誤信息。

如果轉換時沒有指定數據類型的長度,則使用 OceanBase 數據庫系統內部最大長度。如?VARCHAR是262,143字節(jié),?NUMBER是 65 個 bit 位的浮動精度。

支持帶符號和無符號的 64 比特值的運算。如果您正在使用數字操作符 (如 +) 而其中一個操作數為無符號整數,則結果為無符號??墒褂?SIGNED 和 UNSIGNED cast 操作符來覆蓋它。將運算分別派給帶符號或無符號 64 比特整數。

假如任意一個操作數為一個浮點值,則結果為一個浮點值。

例子

obclient> SELECT CAST(123 AS TIME);
+-------------------+
| CAST(123 AS TIME) |
+-------------------+
| 00:01:23          |
+-------------------+
1 row in set (0.01 sec)

obclient> select cast(1-2 as unsigned), cast(cast(1-2 as unsigned) as signed);
+-----------------------+---------------------------------------+
| cast(1-2 as unsigned) | cast(cast(1-2 as unsigned) as signed) |
+-----------------------+---------------------------------------+
|  18446744073709551615 |                                    -1 |
+-----------------------+---------------------------------------+
1 row in set (0.00 sec)

obclient> SELECT CAST(1 AS UNSIGNED) - 2.0;
+---------------------------+
| CAST(1 AS UNSIGNED) - 2.0 |
+---------------------------+
|                      -1.0 |
+---------------------------+
1 row in set (0.00 sec)

obclient> select cast(0 as date);
+-----------------+
| cast(0 as date) |
+-----------------+
| 0000-00-00      |
+-----------------+
1 row in set (0.00 sec)
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號