轉換 (SSIS)
將運算式從一種資料類型明確轉換成另一種資料類型。轉換運算子也可以當作截斷運算子使用。
語法
(type_spec) expression
引數
type_spec
是有效的 SSIS 資料類型。
expression
是有效的運算式。
結果類型
type_spec 的資料類型。如需詳細資訊,請參閱<Integration Services 資料類型>。
備註
下列圖表顯示合法的轉換運算。
轉換成某些資料類型需要參數。下表列出這些資料類型及其參數。
資料類型 | 參數 | 範例 |
---|---|---|
DT_STR |
charcount codepage |
(DT_STR,30,1252) 會使用 1252 字碼頁將 30 個位元組 (或 30 個單一字元) 轉換成 DT_STR 資料類型。 |
DT_WSTR |
Charcount |
(DT_WSTR,20) 會將成對的 20 個位元組 (或 20 個 Unicode 字元) 轉換成 DT_WSTR 資料類型。 |
DT_BYTES |
Bytecount |
(DT_BYTES,50) 將 50 個位元組轉換為 DT_BYTES 資料類型。 |
DT_DECIMAL |
Scale |
(DT_DECIMAL,2) 將數值轉換為 DT_DECIMAL 資料類型,使用 2 位小數位數。 |
DT_NUMERIC |
Precision Scale |
(DT_NUMERIC,10,3) 將數值轉換為 DT_NUMERIC 資料類型,使用 10 位有效位數與 3 位小數位數。 |
DT_TEXT |
Codepage |
(DT_TEXT,1252) 將值轉換為 DT_TEXT 資料類型,使用 1252 字碼頁。 |
使用轉換運算子時,日期需要特殊考量。
當字串轉換成 DT_DATE 或 DT_DATE 轉換成字串時,會使用轉換的地區設定。
附註: 日期是使用 ISO 格式 YYYY-MM-DD,不過地區設定的偏好設定可能使用不同的格式。 將字串轉換成 DT_DATE 以外的日期資料類型會產生下列結果。
資料類型 日期格式 DT_DBDATE
yyyy-mm-dd
DT_FILETIME
yyyy-mm-dd hh:mm:ss:fff
DT_DBTIME
hh:mm:ss
DT_DBTIMESTAMP
yyyy-mm-dd hh:mm:ss:fffffffff
在 DT_FILETIME 的日期格式中,fff 是介於 0 和 999 之間的值。此格式與 Windows SYSTEMTIME 資料類型相同。
在 DT_DBTIMESTAMP 的日期格式中,fffffffff 是介於 0 和 999999999 之間的值。
如果字碼頁為多位元組字元字碼頁,則位元組和字元的數目可能會不一樣。使用相同的 charcount 值從 DT_WSTR 轉換成 DT_STR,可能會截斷轉換完成字串中的最後幾個字元。如果目的地資料表的資料行中有足夠的儲存體,請將 charcount 參數的值設定為反映多位元組字碼頁所需的位元組數目。例如,如果您使用 936 字碼頁將字元資料轉換成 DT_STR 資料類型,則應將 charcount 設定成最多為您希望資料包含的字元數之兩倍的值;如果使用 UTF-8 字碼頁轉換字元資料,則應將 charcount 設定為四倍。
範例
此範例會將數值轉換成整數。
(DT_I4) 3.57
此範例會使用 1252 字碼頁將整數轉換成字元字串。
(DT_STR,1,1252)5
此範例會將 3 個字元的字串轉換成雙位元組字元。
(DT_WSTR,3)"Cat"
此範例會將整數轉換成擁有 2 位小數位數的小數。
(DT_DECIMAl,2)500
此範例會將整數轉換成擁有 7 位有效位數和 3 位小數位數的數值。
(DT_NUMERIC,7,3)4000
此範例會使用 1252 字碼頁將 FirstName 資料行中,以 nvarchar 資料類型定義且長度為 50 的值轉換成字元字串。
(DT_STR,50,1252)FirstName
此範例會將字串常值「True」轉換成布林。
(DT_BOOL)"True"