閱讀195 返回首頁    go 阿裏雲


轉換函數__函數_SQL語法參考_雲數據庫 OceanBase-阿裏雲

CAST(expr AS type)

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

expr字段值轉換為type數據類型。數據類型參見數據類型章節。

  1. Oceanbase>SELECT CAST(123 AS BOOL);
  2. +-------------------+
  3. | CAST(123 AS bool) |
  4. +-------------------+
  5. | 1 |
  6. +-------------------+
  7. 1 row in set (0.00 sec)

參數說明:

expr:表示任何有效的SQL表達式。

AS: 用於分隔兩個參數,在AS之前的是要處理的數據,在AS之後是要轉換的數據類型。type: 表示目標係統所提供的數據類型。可以是以下值其中的一個:

  • CHAR[(N)] (CHAR[N]會使 cast 使用該參數的不多於N 個字符)

  • DATE

  • DATETIME

  • DECIMAL

  • SIGNED [INTEGER]

  • TIME

  • UNSIGNED [INTEGER]

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

  • 兩個表達式的數據類型完全相同;

  • 兩個表達式可隱式轉換;

  • 必須顯式轉換數據類型。

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

如果轉換時沒有指定數據類型的長度,則使用 OceanBase係統內部最大長度。如varchar是262,143字節,number是65個bit位的浮動精度。

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

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

  1. Oceanbase>select cast(1-2 as unsigned), cast(cast(1-2 as unsigned) as signed);
  2. +-----------------------+---------------------------------------+
  3. | cast(1-2 as unsigned) | cast(cast(1-2 as unsigned) as signed) |
  4. +-----------------------+---------------------------------------+
  5. | 18446744073709551615 | -1 |
  6. +-----------------------+---------------------------------------+
  7. 1 row in set (0.00 sec)
  8. Oceanbase>SELECT CAST(1 AS UNSIGNED) - 2.0;
  9. +---------------------------+
  10. | CAST(1 AS UNSIGNED) - 2.0 |
  11. +---------------------------+
  12. | -1.0 |
  13. +---------------------------+
  14. 1 row in set (0.00 sec)
  15. Oceanbase>select cast(0 as date);
  16. +-----------------+
  17. | cast(0 as date) |
  18. +-----------------+
  19. | 0000-00-00 |
  20. +-----------------+
  21. 1 row in set (0.00 sec)

最後更新:2016-11-23 16:03:54

  上一篇:go 字符串函數__函數_SQL語法參考_雲數據庫 OceanBase-阿裏雲
  下一篇:go 聚合函數__函數_SQL語法參考_雲數據庫 OceanBase-阿裏雲