DuckDB.NET Type Mappings
The following table lists the mappings between DuckDB types and .NET types. The default type is returned by the GetValue
method. Non-default types can be read by calling the GetFieldValue<T>
method.
DuckDB type | Default .NET type | Default .NET type |
---|---|---|
Boolean | bool | |
TINYINT | sbyte | short, int, long, byte, ushort, uint, ulong |
SMALLINT | short | sbyte, int, long, byte, ushort, uint, ulong |
INTEGER | int | sbyte, short, long, byte, ushort, uint, ulong |
BIGINT | long | sbyte, short, int, byte, ushort, uint, ulong |
HUGEINT | BigInteger | sbyte, short, int, long, uint, ulong |
UTINYINT | byte | sbyte, short, int, long, ushort, uint, ulong |
USMALLINT | ushort | sbyte, short, int, long, byte, uint, ulong |
UINTEGER | uint | sbyte, short, int, long, byte, ushort, ulong |
UBIGINT | ulong | sbyte, short, int, long, byte, ushort, uint |
UHUGEINT | BigInteger | sbyte, short, int, long, uint, ulong |
REAL | float | |
DOUBLE | double | |
DECIMAL | decimal | |
UUID | Guid | |
VARCHAR | string | |
BLOB | Stream | |
BIT | string | BitArray |
DATE | DateTime/DateOnly | DateTime, DateOnly, DuckDBDateOnly |
TIME | TimeSpan/TimeOnly | DateTime, TimeOnly, DuckDBTimeOnly |
TIMETZ | DateTimeOffset | DuckDBTimeTz |
TIMESTAMP | DateTime | DuckDBTimestamp |
TIMESTAMP_NS | DateTime | DuckDBTimestamp |
TIMESTAMP_MS | DateTime | DuckDBTimestamp |
TIMESTAMP_S | DateTime | DuckDBTimestamp |
TIMESTAMPTZ | DateTime | DuckDBTimestamp |
INTERVAL | TimeSpan | DuckDBInterval |