Data types

How each source column type lands in Snowflake. Most types have a direct Snowflake equivalent. A few don’t, and those are kept as text so no value is rounded, shifted or lost; they are marked as text below.

  • Change a type per column on the task’s Schema tab. The tables below are the defaults a new task starts with.
  • A type that isn’t listed lands as VARCHAR.
  • Timestamps with a time zone land as TIMESTAMP_TZ, in UTC.
  • JSON lands as VARIANT, so you query fields directly with "COL":field, no PARSE_JSON needed.
Files and REST APIs have no declared column types. Types are detected from a sample and can be reviewed before the first load: see Files and REST API.

SQL Server

Source typeSnowflake typeNotes
Numbers
tinyint, smallint, int, bigintNUMBER
decimal, numeric, money, smallmoneyNUMBER(38,10)
real, floatFLOAT
bitBOOLEAN
Text
char, varchar, nchar, nvarchar, text, ntextVARCHARJSON stored in nvarchar stays VARCHAR; SQL Server has no JSON column type. Use PARSE_JSON, or change the column to VARIANT on the Schema tab.
uniqueidentifierVARCHAR
xmlVARCHAR as text
hierarchyidVARCHAR as textThe path form, for example /1/3/.
sql_variantVARCHAR as text
Dates and times
dateDATE
timeTIMEFull 100-nanosecond precision.
datetime, datetime2, smalldatetimeTIMESTAMP_NTZ
datetimeoffsetTIMESTAMP_TZ
Spatial
geometryGEOMETRYPlanar.
geographyGEOGRAPHYLatitude and longitude.
Binary
binary, varbinary, imageBINARY
timestamp / rowversionBINARYA row version number, not a date.

PostgreSQL

Source typeSnowflake typeNotes
Numbers
smallint, integer, bigint, serial typesNUMBER
numeric, decimalNUMBER(38,10)Read as text, so values beyond 28 digits aren’t rounded on the way in.
moneyNUMBER(38,10)
real, double precisionFLOAT
booleanBOOLEAN
oidNUMBER(10,0)
Text
text, varchar, charVARCHAR
uuidVARCHAR
xmlVARCHAR as text
Dates and times
dateDATE
timeTIME
time with time zoneVARCHAR as textFor example 14:30:00+05:30. Snowflake has no time-of-day type with a time zone.
timestampTIMESTAMP_NTZ
timestamp with time zoneTIMESTAMP_TZ
intervalVARCHAR as textFor example 1 year 2 mons 3 days 04:05:06. Months and years have no fixed length, so the interval is kept as written.
Structured
json, jsonbVARIANT
Any array, such as integer[] or text[]VARIANTQuery elements with "COL"[0].
Range types: int4range, int8range, numrange, daterange, tsrange, tstzrangeVARCHAR as textFor example [1,10).
Spatial (PostGIS)
geometryGEOMETRYPlanar.
geographyGEOGRAPHYLatitude and longitude.
Other
byteaBINARY
inet, cidr, macaddr, macaddr8VARCHAR as textFor example 192.168.1.0/24.
bit, bit varyingVARCHAR as textThe bit string, for example 10101010.

MySQL / MariaDB

Source typeSnowflake typeNotes
Numbers
tinyint, smallint, mediumint, int, bigintNUMBER
tinyint unsigned, smallint unsigned, mediumint unsignedNUMBER(10,0)
int unsigned, bigint unsignedNUMBER(38,0)The largest unsigned values are kept.
decimalNUMBER(38,10)
float, doubleFLOAT
tinyint(1) / boolean, bit(1)BOOLEAN
bit(n)VARCHAR as textThe bit string, for example 10101010.
yearNUMBER
Text
char, varchar, text types, enum, setVARCHAR
Dates and times
dateDATE
datetime, timestampTIMESTAMP_NTZ
timeVARCHAR as textMySQL time is a duration and can be negative or longer than 24 hours, which Snowflake TIME can’t hold.
Structured
jsonVARIANTMariaDB stores JSON as longtext, so on MariaDB it lands as VARCHAR.
Spatial
geometry, point, linestring, polygon and their multi and collection typesGEOMETRY
Binary
binary, varbinary, blob typesBINARY

Oracle

Source typeSnowflake typeNotes
Numbers
NUMBER(p,s)NUMBER(p,s)Precision above 28 lands as NUMBER(38,s), with the scale capped at 10. A negative scale lands as scale 0.
NUMBER with no precisionVARCHAR as textIt can hold more digits than Snowflake NUMBER, so the exact value is kept as text. Declare a precision, or change the column on the Schema tab, if you know the range.
FLOATVARCHAR as textOracle FLOAT is a decimal type with up to 126 binary digits; kept exact for the same reason.
BINARY_FLOAT, BINARY_DOUBLEFLOAT
Text
VARCHAR2, NVARCHAR2, CHAR, NCHAR, CLOB, NCLOBVARCHAR
XMLTYPEVARCHAR as text
ROWID, UROWIDVARCHAR as text
Dates and times
DATETIMESTAMP_NTZAn Oracle DATE includes the time of day.
TIMESTAMPTIMESTAMP_NTZ
TIMESTAMP WITH TIME ZONETIMESTAMP_TZ
TIMESTAMP WITH LOCAL TIME ZONEVARCHAR as text
INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECONDVARCHAR as text
Structured and spatial
JSONVARIANT
SDO_GEOMETRYGEOMETRY
Binary
RAW, LONG RAW, BLOBBINARY
BFILEVARCHAR as textThe file’s directory and name, not its contents.