本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CONVERT 函數
像CAST 函數,CONVERT 函數將一種數據類型轉換為另一個兼容的數據類型。例如,您可以將字串轉換為日期,或將數字類型轉換為字串。CONVERT 會執行執行期轉換,這表示轉換不會變更來源資料表中值的資料類型。它僅在查詢的上下文中進行更改。
某些資料類型需要使用 CONVERT 函數來明確轉換為其他資料類型。其他資料類型可在另一個命令中隱含地轉換,而不需要使用 CAST 或 CONVERT。請參閱類型相容性與轉換。
語法
CONVERT ( type, expression )
引數
- type
-
支援的其中一個資料類型,除了 VARBYTE、二進位和二進位變異資料類型。
- 運算式
-
任何評估為一或多個值的表達式,例如欄名或常值。轉換 Null 值會傳回 Null。運算式不能包含空白或空白字串。
傳回類型
CONVERT 傳回 type 引數指定的資料類型。
注意
AWS Clean Rooms 如果您嘗試執行有問題的轉換,例如失去精確度的 DECIMAL 轉換,就會傳回錯誤,如下所示:
SELECT CONVERT(decimal(2,1), 123.456);
或造成溢位的 INTEGER 轉換:
SELECT CONVERT(smallint, 12345678);
範例
下列查詢使用 CONVERT 函數將一欄小數轉換為整數
SELECT CONVERT(integer, pricepaid) FROM sales WHERE salesid=100;
這個範例會將整數轉換為字元字串。
SELECT CONVERT(char(4), 2008);
此範例會將目前日期和時間轉換為可變字元資料類型:
SELECT CONVERT(VARCHAR(30), GETDATE());
getdate --------- 2023-02-02 04:31:16
這個範例會將 saletime 欄轉換成僅限時間,並從每一列移除日期。
SELECT CONVERT(time, saletime), salesid FROM sales order by salesid limit 10;
下列範例會將可變字元資料轉換成日期時間物件。
SELECT CONVERT(datetime, '2008-02-18 02:36:48') as mysaletime;