Summary of data types

Snowflake supports most SQL data types. The following table provides a summary of the supported data types:

CategoryTypeNotes
Numeric data typesNUMBERDefault precision and scale are (38,0).
DECIMAL, NUMERICSynonymous with NUMBER.
INT, INTEGER, BIGINT, SMALLINT, TINYINT, BYTEINTSynonymous with NUMBER, except precision and scale can’t be specified.
FLOAT, FLOAT4, FLOAT8[1]
DOUBLE, DOUBLE PRECISION, REALSynonymous with FLOAT. [1]
DECFLOATStores numbers exactly, with up to 38 significant digits of precision, and uses a dynamic base-10 exponent.
String & binary data typesVARCHARDefault length is 16777216 bytes. Maximum length is 134217728 bytes.
CHAR, CHARACTERSynonymous with VARCHAR, except the default length is VARCHAR(1).
STRING, TEXTSynonymous with VARCHAR.
BINARY
VARBINARYSynonymous with BINARY.
Logical data typesBOOLEANCurrently only supported for accounts provisioned after January 25, 2016.
Date & time data typesDATE
DATETIMESynonymous with TIMESTAMP_NTZ.
TIME
TIMESTAMPAlias for one of the TIMESTAMP variations (TIMESTAMP_NTZ by default).
TIMESTAMP_LTZTIMESTAMP with local time zone; time zone, if provided, isn’t stored.
TIMESTAMP_NTZTIMESTAMP with no time zone; time zone, if provided, isn’t stored.
TIMESTAMP_TZTIMESTAMP with time zone.
Semi-structured data typesVARIANT
OBJECT
ARRAY
Structured data typesARRAY
OBJECT
MAP
Unstructured data typesFILESee Introduction to unstructured data.
Geospatial data typesGEOGRAPHY
GEOMETRY
UUID data typeUUID
Vector data typesVECTOR
User-defined typesNot applicableDefined by the user based on existing Snowflake data types.

[1] A known issue in Snowflake displays FLOAT, FLOAT4, FLOAT8, REAL, DOUBLE, and DOUBLE PRECISION as FLOAT, even though they are stored as DOUBLE.