Cast (SSIS)
Explicitly converts an expression from one data type to a different data type. The cast operator can also function as a truncation operator.
Syntax
(type_spec) expression
Arguments
- type_spec
Is a valid SSIS data type.
- expression
Is a valid expression.
Result Types
The data type of type_spec. For more information, see Integration Services Data Types.
Remarks
The following diagram shows legal cast operations.
Casting to some data types requires parameters. The following table lists these data types and their parameters.
Data type | Parameter | Example |
---|---|---|
DT_STR |
charcount codepage |
(DT_STR,30,1252) casts 30 bytes, or 30 single characters, to the DT_STR data type using the 1252 code page. |
DT_WSTR |
Charcount |
(DT_WSTR,20) casts 20 byte pairs, or 20 Unicode characters, to the DT_WSTR data type. |
DT_BYTES |
Bytecount |
(DT_BYTES,50) casts 50 bytes to the DT_BYTES data type. |
DT_DECIMAL |
Scale |
(DT_DECIMAL,2) casts a numeric value to the DT_DECIMAL data type using a scale of 2. |
DT_NUMERIC |
Precision Scale |
(DT_NUMERIC,10,3) casts a numeric value to the DT_NUMERIC data type using a precision of 10 and a scale of 3. |
DT_TEXT |
Codepage |
(DT_TEXT,1252) casts a value to the DT_TEXT data type using the 1252 code page. |
Dates require special consideration when using the cast operator.
When a string is cast to a DT_DATE, or vice versa, the locale of the transformation is used.
Note
The date is in the ISO format YYYY-MM-DD, though the locale preference may be a different format.
Casting a string to a date data type other than DT_DATE gives the following results.
Data type Date format 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
In the date format for DT_FILETIME, fff is a value between 0 and 999. The format is the same as the Windows SYSTEMTIME data type.
In the date format for DT_DBTIMESTAMP, fffffffff is a value between 0 and 999999999.
If the code page is a multibyte character code page, the number of bytes and characters may differ. Casting from a DT_WSTR to a DT_STR with the same charcount value may cause truncation of the final characters in the converted string. If sufficient storage is available in the column of the destination table, set the value of the charcount parameter to reflect the number of bytes that the multibyte code page requires. For example, if you cast character data to a DT_STR data type using the 936 code page, you should set charcount to a value up to two times greater than the number of characters that you expect the data to contain; if you cast character data using the UTF-8 code page, you should set charcount to a value up to four times greater.
Examples
This example casts a numeric value to an integer.
(DT_I4) 3.57
This example casts an integer to a character string using the 1252 code page.
(DT_STR,1,1252)5
This example casts a three-character string to double-byte characters.
(DT_WSTR,3)"Cat"
This example casts an integer to a decimal with a scale of two.
(DT_DECIMAl,2)500
This example casts an integer to a numeric with a precision of seven and scale of three.
(DT_NUMERIC,7,3)4000
This example casts values in the FirstName column, defined with an nvarchar data type and a length of 50, to a character string using the 1252 code page.
(DT_STR,50,1252)FirstName
This example casts the string literal "True" to a Boolean.
(DT_BOOL)"True"
See Also
Concepts
Operator Precedence and Associativity