Data Types and Limitations

Skyvia supports the following data types:

Data type Description
DT_AUTO This type is used to specify that the source CSV column type must be determined automatically based on the target field type.
DT_BOOL A Boolean value.

When reading a CSV file the following are valid DT_BOOL values: true, false, 0, 1.
DT_BYTES A binary data value. The length is variable and can be up to 8000 bytes. Check Importing Binary Data for more details on importing such values from a CSV file.
DT_CY* A currency value. An eight-byte signed integer with a scale of 4 and a maximum precision of 19 digits. The minimal value is -922,337,203,685,477.5808. The maximal value is 922,337,203,685,477.5807
DT_DBDATE* A date structure, consisting of year, month, and day. The minimal value is 30 December 1899. The maximal value is 30 December 9999.
DT_DBTIME* A time structure, consisting of hour, minute, and second. Can hold values that are in the range of 00:00:00 through 23:59:59.
DT_DBTIME2* A time structure, consisting of hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 7 digits. Can hold values that are in the range of 00:00:00.0000000 through 23:59:59.9999999.
DT_DBTIMESTAMP* A timestamp structure, consisting of year, month, day, hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 3 digits. Can hold values that are in the range of January 1, 1 A.D. through December 31, 9999.
DT_DBTIMESTAMP2* A timestamp structure, consisting of year, month, day, hour, minute, second, and fractional seconds. The fractional seconds have a maximum scale of 7 digits. Can hold values that are in the range of January 1, 1753 A.D. through December 31, 9999.
DT_DBTIMESTAMPOFFSET* A timestamp structure, consisting of year, month, day, hour, minute, second, and fractional seconds with a time zone offset. The fractional seconds have a maximum scale of 7 digits. The offset specifies the number of hours and minutes that the time is offset from the Coordinated Universal Time (UTC) and is used by the system to obtain the local time.

The time zone offset must include a sign, plus or minus, to indicate whether the offset is added or subtracted from the UTC. The valid number of hours offset is between -14 and +14.

Can hold values that are in the range of 0001-01-01 00:00:00 -14:00 through 9999-12-31 23:59:59.9999999 +14:00.
DT_DECIMAL* An exact numeric value with a fixed precision and a fixed scale. This data type is a 12-byte unsigned integer with a separate sign, a scale of 0 to 28, and a maximum precision of 29.
DT_FILETIME A 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601. The fractional seconds have a maximum scale of 3 digits.
DT_GUID A globally unique identifier (GUID).
DT_I1 A one-byte, signed integer. The minimal value is -128, the maximal value is 127.
DT_I2 A two-byte, signed integer. The minimal value is -32768, the maximal is 32767.
DT_I4 A four-byte, signed integer. The minimal value is -2,147,483,648, the maximal is 2,147,483,647.
DT_I8 An eight-byte, signed integer. The minimal value is -9,223,372,036,854,775,808, the maximal is 9,223,372,036,854,775,807.
DT_NUMERIC* An exact numeric value with a fixed precision and scale. This data type is a 16-byte unsigned integer with a separate sign, a scale of 0 - 38, and a maximum precision of 28.
DT_R4 A single-precision floating-point value. The minimal value is -3.402823466 E + 38, the maximal value is 3.402823466 E + 38. The smallest normalized value that can be stored in this type is 1.175494351 E -38.
DT_R8 A double-precision floating-point value. The minimal value is -1.7976931348623158 E + 308, the maximal value is 1.7976931348623158 E + 308. The smallest normalized value that can be stored in this type is 2.2250738585072014 E – 308.
DT_STR A null-terminated ANSI/MBCS character string with a maximum length of 8000 characters. If a column value contains additional null terminators, the string will be truncated at the occurrence of the first null.
DT_UI1 A one-byte, unsigned integer. The minimal value is 0, the maximal value is 256.
DT_UI2 A two-byte, unsigned integer. The minimal value is 0, the maximal value is 65536.
DT_UI4 A four-byte, unsigned integer. The minimal value is 0, the maximal value is 4,294,967,296.
DT_UI8 An eight-byte, unsigned integer. The minimal value is 0, the maximal value is 18,446,744,073,709,551,616
DT_WSTR A null-terminated Unicode character string with a maximum length of 4000 characters. If a column value contains additional null terminators, the string will be truncated at the occurrence of the first null.
DT_IMAGE A binary value with a maximum size of 231-1 (2,147,483,647) bytes. Check Importing Binary Data for more details on importing such values from a CSV file.
DT_NTEXT A Unicode character string with a maximum length of 230 - 1 (1,073,741,823) characters.

When reading a DT_NTEXT value from a CSV file, the value length must not exceed 65536 characters.
DT_TEXT An ANSI/MBCS character string with a maximum length of 231-1 (2,147,483,647) characters.

When reading a DT_TEXT value from a CSV file, the value length must not exceed 65536 characters.

* When exporting the values of this type to CSV files, they are exported in the format, determined from the locale settings, specified in the package CSV options. When importing CSV files, the format of a value must correspond to the locale, specified in CSV options in the import task, in order for the value to be parsed correctly as a valid value of such type.

If a database or a CRM uses types that cannot be mapped to these simple types, Skyvia treats it as strings. When importing data from a CSV file, the values for columns of such types must have format understandable for the target. They will be sent to the target as the same strings that are stored in the CSV file.