Summary of data types¶
Snowflake supports most SQL data types. The following table provides a summary of the supported data types:
| Category | Type | Notes |
|---|---|---|
| Numeric data types | NUMBER | Default precision and scale are (38,0). |
| DECIMAL, NUMERIC | Synonymous with NUMBER. | |
| INT, INTEGER, BIGINT, SMALLINT, TINYINT, BYTEINT | Synonymous with NUMBER, except precision and scale can’t be specified. | |
| FLOAT, FLOAT4, FLOAT8 | [1] | |
| DOUBLE, DOUBLE PRECISION, REAL | Synonymous with FLOAT. [1] | |
| DECFLOAT | Stores numbers exactly, with up to 38 significant digits of precision, and uses a dynamic base-10 exponent. | |
| String & binary data types | VARCHAR | Default length is 16777216 bytes. Maximum length is 134217728 bytes. |
| CHAR, CHARACTER | Synonymous with VARCHAR, except the default length is VARCHAR(1). | |
| STRING, TEXT | Synonymous with VARCHAR. | |
| BINARY | ||
| VARBINARY | Synonymous with BINARY. | |
| Logical data types | BOOLEAN | Currently only supported for accounts provisioned after January 25, 2016. |
| Date & time data types | DATE | |
| DATETIME | Synonymous with TIMESTAMP_NTZ. | |
| TIME | ||
| TIMESTAMP | Alias for one of the TIMESTAMP variations (TIMESTAMP_NTZ by default). | |
| TIMESTAMP_LTZ | TIMESTAMP with local time zone; time zone, if provided, isn’t stored. | |
| TIMESTAMP_NTZ | TIMESTAMP with no time zone; time zone, if provided, isn’t stored. | |
| TIMESTAMP_TZ | TIMESTAMP with time zone. | |
| Semi-structured data types | VARIANT | |
| OBJECT | ||
| ARRAY | ||
| Structured data types | ARRAY | |
| OBJECT | ||
| MAP | ||
| Unstructured data types | FILE | See Introduction to unstructured data. |
| Geospatial data types | GEOGRAPHY | |
| GEOMETRY | ||
| UUID data type | UUID | |
| Vector data types | VECTOR | |
| User-defined types | Not applicable | Defined 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.