Share via


DataType Enumeration

Indicates the data type of columns in data flow components and the data flow buffer.

Namespace:  Microsoft.SqlServer.Dts.Runtime.Wrapper
Assembly:  Microsoft.SqlServer.DTSRuntimeWrap (in Microsoft.SqlServer.DTSRuntimeWrap.dll)

Syntax

'Declaration
Public Enumeration DataType
'Usage
Dim instance As DataType
public enum DataType
public enum class DataType
type DataType
public enum DataType

Members

Member name Description
DT_EMPTY A data type that does not have a value.
DT_NULL A data type with a value of NULL.
DT_I2 A 2-byte, signed integer.
DT_I4 A 4-byte, signed integer.
DT_R4 A single-precision floating-point value.
DT_R8 A double-precision floating-point value.
DT_CY A currency value. This data type is an 8-byte value with a scale of 4 and a maximum precision of 19.
DT_DATE A date structure that consists of year, month, day, and hour.

The DT_DATE data type is implemented using an 8-byte floating-point number. Days are represented by whole number increments, starting with 30 December 1899, and midnight as time zero. Hour values are expressed as the absolute value of the fractional part of the number. This means that DT_DATE can represent minutes, seconds, and even milliseconds as well. However, floating point value cannot represent all real values; therefore, there are limits on the range of dates that can be presented in DT_DATE.

On the other hand, DT_DBTIMESTAMP is represented by a structure that has individual fields for year, month, day, hours, minutes, seconds, and milliseconds, and this data type has no limits on ranges of the dates it can present.

DT_BOOL A Boolean value.
DT_DECIMAL An exact numeric value with a fixed precision and a fixed scale. This data type is a 12-byte value with a separate sign, a scale of 0 to 28, and a maximum precision of 29.
DT_I1 A 1-byte, signed integer.
DT_UI1 A 1-byte, unsigned integer.
DT_UI2 A 2-byte, unsigned integer.
DT_UI4 A 4-byte, unsigned integer.
DT_I8 An 8-byte, signed integer.
DT_UI8 An 8-byte, unsigned integer.
DT_FILETIME A 64-bit value that represents the number of 100-nanosecond intervals since January 1, 1601.
DT_GUID A globally unique identifier (GUID).
DT_BYTES A binary data value. The length is variable and the maximum length is 8,000 bytes.
DT_STR A null-terminated ANSI/MBCS character string.
DT_WSTR A null-terminated Unicode character string.
DT_NUMERIC An exact numeric value with a fixed precision and scale. This data type is a 16-byte value with a separate sign, a scale of 0 to 38, and a maximum precision of 38.
DT_DBDATE A date structure that consists of year, month, and date.
DT_DBTIME A time structure that consists of hour, minute, and second.
DT_DBTIMESTAMP A timestamp structure that consists of year, month, day, hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 3 digits.
DT_DBTIME2 A time structure that consists of hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 7 digits.
DT_DBTIMESTAMPOFFSET A timestamp structure that consists of year, month, day, hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 7 digits.

The DT_DBTIMESTAMPOFFSET data type also has a time zone offset. This offset specifies the number of hours and minutes that the time is offset from the Coordinated Universal Time (UTC). The time zone offset is used by the system to obtain the local time.

DT_IMAGE A binary value with a maximum size of 231–1 (2,147,483,647) bytes.
DT_TEXT An ANSI/MBCS character string with a maximum length of 231–1 (2,147,483,647) characters.
DT_NTEXT A Unicode character string with a maximum length of 2^30–1 (1,073,741,823) characters.
DT_DBTIMESTAMP2 A timestamp structure that consists of year, month, day, hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 7 digits.
DT_BYREF_I2 A pointer to a 2-byte, signed integer.
DT_BYREF_I4 A pointer to a 4-byte, signed integer.
DT_BYREF_R4 A pointer to a single-precision floating-point value.
DT_BYREF_R8 A pointer to a double-precision floating-point value.
DT_BYREF_CY A pointer to a currency value. This data type is an 8-byte value with a scale of 4 and a maximum precision of 19.
DT_BYREF_DATE A pointer to a date structure that consists of year, month, date, and hour.
DT_BYREF_BOOL A pointer to a Boolean value.
DT_BYREF_DECIMAL A pointer to an exact numeric value with a fixed precision and a fixed scale. This data type is a 12-byte value with a separate sign, a scale of 0 to 28, and a maximum precision of 29.
DT_BYREF_I1 A pointer to a 1-byte, signed integer.
DT_BYREF_UI1 A pointer to a 1-byte, unsigned integer.
DT_BYREF_UI2 A pointer to a 2-byte, unsigned integer.
DT_BYREF_UI4 A pointer to a 4-byte, unsigned integer.
DT_BYREF_I8 A pointer to an 8-byte, signed integer.
DT_BYREF_UI8 A pointer to an 8-byte, unsigned integer.
DT_BYREF_FILETIME A pointer to a 64-bit value that represents the number of 100-nanosecond intervals since January 1, 1601.
DT_BYREF_GUID A pointer to a GUID.
DT_BYREF_NUMERIC A pointer to an exact numeric value with a fixed precision and scale. This data type is a 16-byte value with a separate sign, a scale of 0 to 38, and a maximum precision of 38.
DT_BYREF_DBDATE A pointer to a date structure that consists of year, month, and date.
DT_BYREF_DBTIME A pointer to a time structure that consists of hour, minute, and second.
DT_BYREF_DBTIMESTAMP A pointer to a timestamp structure that consists of year, month, day, hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 3 digits.
DT_BYREF_DBTIME2 A pointer to a time structure that consists of hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 7 digits.
DT_BYREF_DBTIMESTAMPOFFSET A pointer to a timestamp structure that consists of year, month, day, hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 7 digits.

The DT_DBTIMESTAMPOFFSET data type also has a time zone offset. This offset specifies the number of hours and minutes that the time is offset from the Coordinated Universal Time (UTC). The time zone offset is used by the system to obtain the local time.

DT_BYREF_DBTIMESTAMP2 A pointer to a timestamp structure that consists of year, month, day, hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 7 digits.

Remarks

Data types are divided into reference types and value types. Reference types point to an object of the specified type. Value types contain the actual data, not a pointer to the data.

For those data types that are value types, there are times where you need a pointer to their data, not the data itself. In the member table, the DT_BYREF* members are fields that were created to be pointers to value types.

For more information, see Working with Data Types in the Data Flow.

Note

Boolean values are logical values, not numbers. Although Boolean values may be displayed as numbers in some environments, they are not stored as numbers, and various programming languages represent Boolean values as numeric values differently, as do the .NET Framework methods.

For example, the conversion functions available in Visual Basic convert True to -1; however, the System.Convert.ToInt32 method in the .NET Framework converts True to +1. The Integration Services Expression Language converts True to -1.

To avoid errors or unexpected results, you should not write code that relies on particular numeric values for True and False. Wherever possible, you should restrict usage of Boolean variables to the logical values for which they are designed.

For more information about data types, see Integration Services Data Types.