Table of Contents

Enum DataType

Namespace
LinqToDB
Assembly
linq2db.dll

List of data types, supported by linq2db. Provider-level support depends on database capabilities and current implementation support level and could vary for different providers.

[Flags]
public enum DataType
Extension Methods

Fields

Array = -2147483648

Array type flag.

BFile = VarChar | Enum8

Oracle BFILE data type.

Binary = Char | NText

A fixed-length stream of binary data ranging between 1 and 8,000 bytes.

BinaryJson = Int64 | DateTime2

Binary type utilized postgres provider (jsonb).

BitArray = NChar | Xml

Array of bits.

Blob = Char | VarBinary

Binary large object.

Boolean = Char | Image

A simple type representing Boolean values of true or false.

Byte = Char | Int64

An 8-bit unsigned integer ranging in value from 0 to 255.

Char = 1

A fixed-length stream of non-Unicode characters ranging between 1 and 8,000 characters.

Cursor = VarChar | BitArray

Result set (for example OracleDbType.RefCursor).

Date = Char | SmallMoney

A type representing a date value.

Date32 = Char | DateTz

Date32 ClickHouse type.

DateTime = Char | Time

Date and time data ranging in value from January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds.

DateTime2 = 32

Date and time data. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds.

DateTime2Tz = VarChar | DateTime2

Date and time data with timezone information with high precision.

DateTime64 = Char | DateTimeOffset

DateTime64 ClickHouse/YDB type.

DateTimeOffset = NChar | DateTime2

Date and time data with DST offset awareness. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Time zone value range is -14:00 through +14:00.

DateTimeTz = Char | DateTime2

Date and time data with timezone information with low precision.

DateTz = NChar | Decimal

A type representing a date value with timezone.

DecFloat = Char | BFile

Type representing number with fixed precision and floating scale (full size).

Decimal = VarBinary | Int64

A simple type representing values with fixed precision and scale numbers. When maximum precision is used, valid values are from -10^38+1 through 10^38-1.

Decimal128 = VarChar | Decimal32

Decimal128 ClickHouse type.

Decimal256 = Char | Decimal128

Decimal256 ClickHouse type.

Decimal32 = NChar | IntervalWeek

Decimal32 ClickHouse type.

Decimal64 = Char | Decimal32

Decimal64 ClickHouse type.

Dictionary = Char | BitArray

Dictionary type for key-value pairs.

Double = Char | Single

A floating point number within the range of -1.79E +308 through 1.79E +308.

Enum = Char | Interval64

PostgreSQL Enum type.

Enum16 = Char | Enum8

ClickHouse Enum16 type.

Enum8 = VarBinary | BinaryJson

ClickHouse Enum8 type.

Guid = NChar | VarBinary

A globally unique identifier (or GUID).

Half = Char | UInt64

A half-size floating point number.

IPv4 = VarChar | Int256

IPv4 address. Used with: ClickHouse.

IPv6 = Char | IPv4

IPv6 address. Used with: ClickHouse.

Image = VarChar | VarBinary

A variable-length stream of binary data ranging from 0 to 2 31 -1 (or 2,147,483,647) bytes.

Int128 = VarChar | SmallDecFloat

An integral type representing signed 128-bit integers with values between -170141183460469231731687303715884105728 and 170141183460469231731687303715884105727. Used with: Firebird 4+, ClickHouse.

Int16 = VarChar | Guid

An integral type representing signed 16-bit integers with values between -32768 and 32767.

Int256 = 64

Signed 256-bit integer. Used with: ClickHouse.

Int32 = Char | Int16

An integral type representing signed 32-bit integers with values between -2147483648 and 2147483647.

Int64 = 16

An integral type representing signed 64-bit integers with values between -9223372036854775808 and 9223372036854775807.

Interval = Char | LongRaw

PostgreSQL interval type.

Interval64 = VarChar | LongRaw

YDB Interval64 type.

IntervalDay = Char | IntervalHour

IntervalDay ClickHouse type.

IntervalHour = VarChar | IntervalSecond

IntervalHour ClickHouse type.

IntervalMinute = Char | IntervalSecond

IntervalMinute ClickHouse type.

IntervalMonth = Char | IntervalWeek

IntervalMonth ClickHouse type.

IntervalQuarter = VarChar | IntervalWeek

IntervalQuarter ClickHouse type.

IntervalSecond = NChar | Int256

IntervalSecond ClickHouse type.

IntervalWeek = VarBinary | Int256

IntervalWeek ClickHouse type.

IntervalYear = Char | IntervalQuarter

IntervalYear ClickHouse type.

Json = Char | Cursor

Json type utilized in postgres provider.

Long = Char | Structured

Oracle data type for storing character data of variable length up to 2 Gigabytes in length (bigger version of the VARCHAR2 datatype).

LongRaw = NChar | BinaryJson

Oracle data type for storing binary data of variable length up to 2 Gigabytes in length.

Money = Char | Decimal

A currency value ranging from -2 63 (or -9,223,372,036,854,775,808) to 2 63 -1 (or +9,223,372,036,854,775,807) with an accuracy to a ten-thousandth of a currency unit.

NChar = 4

A fixed-length stream of Unicode characters ranging between 1 and 4,000 characters.

NText = VarChar | NChar

A variable-length stream of Unicode data with a maximum length of 2 30 - 1 (or 1,073,741,823) characters.

NVarChar = Char | NChar

A variable-length stream of Unicode characters ranging between 1 and 4,000 characters. Implicit conversion fails if the string is greater than 4,000 characters. Oracle: We need NVarChar2 in order to insert UTF8 string values. The default Odp VarChar2 dbtype doesnt work with UTF8 values. Note : Microsoft oracle client uses NVarChar value by default.

Same as VARCHAR2 except that the column stores values in the National CS , ie you can store values in Bangla if your National CS is BN8BSCII .If the National CS is of fixed width CS (all characters are represented by a fixed byte ,say 2 bytes for JA16EUCFIXED) , then NVARCHAR2(30) stores 30 Characters. Varchar2 works with 8 bit characters where as Nvarchar2 works ith 16 bit characters. If you have to store data other than english prefer Nvarchar2 or viceversa.

NCHAR and NVARCHAR2 are Unicode datatypes that store Unicode character data. The character set of NCHAR and NVARCHAR2 datatypes can only be either AL16UTF16 or UTF8 and is specified at database creation time as the national character set. AL16UTF16 and UTF8 are both Unicode encoding. The NCHAR datatype stores fixed-length character strings that correspond to the national character set.The NVARCHAR2 datatype stores variable length character strings. When you create a table with an NCHAR or NVARCHAR2 column, the maximum size specified is always in character length semantics. Character length semantics is the default and only length semantics for NCHAR or NVARCHAR2. For example, if national character set is UTF8, then the following statement defines the maximum byte length of 90 bytes: CREATE TABLE tab1 (col1 NCHAR(30)); This statement creates a column with maximum character length of 30. The maximum byte length is the multiple of the maximum character length and the maximum number of bytes in each character. The maximum length of an NVARCHAR2 column is 4000 bytes. It can hold up to 4000 characters. The actual data is subject to the maximum byte limit of 4000. The two size constraints must be satisfied simultaneously at run time.

SByte = Char | Guid

An integral type representing signed 8-bit integers with values between -128 and 127.

Single = VarChar | UInt64

A floating point number within the range of -3.40E +38 through 3.40E +38.

SmallDateTime = Char | DateTime2Tz

Date and time data ranging in value from January 1, 1900 to June 6, 2079 to an accuracy of one minute.

SmallDecFloat = NChar | Enum8

Type representing number with fixed precision and floating scale (half size).

SmallMoney = VarChar | Decimal

A currency value ranging from -214,748.3648 to +214,748.3647 with an accuracy to a ten-thousandth of a currency unit.

Structured = VarChar | BinaryJson

SQL Server 2008+ table-valued parameter type (TVP).

Text = Char | VarChar

A variable-length stream of non-Unicode data with a maximum length of 2 31 -1 (or 2,147,483,647) characters.

Time = VarChar | DateTz

A type representing a time value.

TimeTZ = Char | SmallDecFloat

Type representing a time value with timezone or offset.

Timestamp = VarChar | DateTimeOffset

Array of type Byte. Automatically generated binary numbers, which are guaranteed to be unique within a database. timestamp is used typically as a mechanism for version-stamping table rows. The storage size is 8 bytes.

Timestamp64 = Char | Timestamp

Timestamp64 YDB type.

UInt128 = Char | Int128

Unsigned 128-bit integer. Used with: ClickHouse.

UInt16 = VarChar | Int64

An integral type representing unsigned 16-bit integers with values between 0 and 65535.

UInt256 = Char | Int256

Unsigned 256-bit integer. Used with: ClickHouse.

UInt32 = Char | UInt16

An integral type representing unsigned 32-bit integers with values between 0 and 4294967295.

UInt64 = NChar | Int64

An integral type representing unsigned 64-bit integers with values between 0 and 18446744073709551615.

Udt = Char | VarNumeric

A SQL Server 2005 user-defined type (UDT).

Undefined = 0

Undefined data type.

VarBinary = 8

A variable-length stream of binary data ranging between 1 and 8,000 bytes. Implicit conversion fails if the byte array is greater than 8,000 bytes.

VarChar = 2

A variable-length stream of non-Unicode characters ranging between 1 and 8,000 characters. Use VarChar when the database column is varchar(max).

VarNumeric = VarChar | Xml

A variable-length numeric value.

Variant = Char | Xml

A general type representing any reference or value type not explicitly represented by another DataType value.

Vector16 = Array | Half

Vector (array) of Half values.

Vector32 = Array | Single

Vector (array) of Single values.

Xml = VarBinary | DateTime2

An XML value. Obtain the XML as a string using the GetValue method or Value property, or as an XmlReader by calling the CreateReader method.

Yson = Char | BinaryJson

Yandex YSON type.