Explicitly converts an expression from one data type to a different data type. The cast operator can also function as a truncation operator.
-
type_spec
-
Is a valid SSIS data type.
-
expression
-
Is a valid expression.
The data type of type_spec. For more information, see Integration Services Data Types.
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.
This example casts a numeric value to an integer.
This example casts an integer to a character string using the 1252 code page.
This example casts a three-character string to double-byte characters.
This example casts an integer to a decimal with a scale of two.
This example casts an integer to a numeric with a precision of seven and scale of three.
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.
Concepts
Operator Precedence and Associativity
Other Resources
Operators (SSIS)
Help and Information
Getting SQL Server 2005 Assistance