SnowConvert: Tipos de dados do Transact

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Tipos de dados

Números exatos e aproximados

T-SQLSnowflakeNotes
T-SQLSnowflakeNotes
BIGINTBIGINT

​Note that BIGINT in Snowflake is an alias for NUMBER(38,0)

[See note on this conversion below.]

BITBOOLEANSQLServer only accepts ​1, 0, or NULL
DECIMALDECIMAL​Snowflake's DECIMAL is synonymous with NUMBER
FLOATFLOAT

​This data type behaves equally on both systems.

Precision 7-15 digits, float (1-24)

Storage 4 - 8 bytes, float (25-53)

INTINT

Note that INT in Snowflake is an alias for NUMBER(38,0)

[See note on this conversion below.]

MONEYNUMBER(38, 4)[See note on this conversion below.]
REAL​REALSnowflake's REAL is synonymous with FLOAT
SMALLINTSMALLINT​​This data type behaves equally
SMALLMONEYNUMBER(38, 4)[See note on this conversion below.]
TINYINT​TINYINT

Note that TINYINT in Snowflake is an alias for NUMBER(38,0)

[See note on this conversion below.]

NUMERICNUMERIC​Snowflake's NUMERIC is synonymous with NUMBER

NOTE:

  • Para a conversão de tipos de dados inteiros (INT, SMALLINT, BIGINT, TINYINT), cada um é convertido para o alias no Snowflake com o mesmo nome. Cada um desses aliases é, na verdade, convertido para NUMBER(38,0), um tipo de dados consideravelmente maior do que o tipo de dados inteiro. Abaixo está uma comparação do intervalo de valores que podem estar presentes em cada tipo de dados:

    • Snowflake NUMBER(38,0): -99999999999999999999999999999999999999 a +99999999999999999999999999999999999999

    • SQLServerTINYINT: 0 a 255

    • SQLServer INT: -2^31 (-2.147.483.648) a 2^31-1 (2.147.483.647)

    • SQLServer BIGINT: -2^63 (-9.223.372.036.854.775.808) a 2^63-1 (9.223.372.036.854.775.807)

    • SQLServer SMALLINT: -2^15 (-32.768) a 2^15-1 (32.767)

  • Para Money e Smallmoney: ​

    • Os dados monetários ou de moeda não precisam ser colocados entre aspas simples ( “ ). É importante lembrar que, embora você possa especificar valores monetários precedidos por um símbolo de moeda, o SQL Server não armazena nenhuma informação de moeda associada ao símbolo, apenas o valor numérico.

    • Tome cuidado com as conversões para DMLs

Data e hora

T-SQL

Snowflake

Notas

DATE

DATE

​O SQLServer aceita o intervalo de 0001-01-01 a 9999-12-31

DATETIME2

TIMESTAMP_NTZ(7)​

DATETIME Do Snowflake é um alias para TIMESTAMP_NTZ

DATETIME

TIMESTAMP_NTZ(3)

DATETIME Do Snowflake é um alias para TIMESTAMP_NTZ​

DATETIMEOFFSET

TIMESTAMP_TZ(7)

<p>A precisão do carimbo de data/hora do Snowflake varia de 0 a 9 (<em>esse valor é o padrão</em>)</p><p>As operações do Snowflake são realizadas no fuso horário da sessão atual, controlado pelo parâmetro de sessão TIMEZONE</p>

SMALLDATETIME

TIMESTAMP_NTZ

<p>O DATETIME do Snowflake trunca as informações de TIME</p><p>ou seja, 1955-12-13 12:43:10 é salvo como 1955-12-13</p>

TIME

TIME

<p>Esse tipo de dados se comporta igualmente em ambos os sistemas.</p><p>Intervalo de 00:00:00.0000000 a 23:59:59.9999999</p>

TIMESTAMP

TIMESTAMP

Esse é um tipo de dados definido pelo usuário em TSQL, portanto, é convertido em seu equivalente no Snowflake Timestamp.

Cadeias de caracteres

T-SQL

Snowflake

Notas

CHAR

CHAR

​O tamanho máximo da cadeia de caracteres do SQLServer em bytes é 8000, enquanto no Snowflake é 167772161.

TEXT​

TEXT

VARCHAR​

VARCHAR

O tamanho máximo da cadeia de caracteres do SQLServer em bytes é 8000, enquanto no Snowflake é 167772161. SQLServer VARCHAR(MAX) não tem equivalente no SnowFlake; é convertido para VARCHAR para obter o maior tamanho possível por padrão.

Cadeias de caracteres Unicode

T-SQL

Snowflake

Notas

NCHAR

NCHAR

Sinônimo de VARCHAR, exceto que o comprimento padrão é VARCHAR(1).

NTEXT

TEXT

<p>O Snowflake usa o tipo de dados TEXT como sinônimo de VARCHAR</p><p>SQLServer NTEXT(MAX) não tem equivalente no SnowFlake; ele é convertido para VARCHAR para obter o maior tamanho possível por padrão.</p>

NVARCHAR

VARCHAR

<p>O Snowflake usa este tipo de dados como sinônimo de VARCHAR</p><p>SQLServer NVARCHAR(MAX) não tem equivalente no SnowFlake; ele é convertido para VARCHAR para obter o maior tamanho possível por padrão.</p>

Cadeias de caracteres binárias

T-SQL

Snowflake

Notas

BINARY

​BINARY

No Snowflake, o comprimento máximo é 8 MB (8.388.608 bytes) e o comprimento é sempre medido em termos de bytes.

VARBINARY

VARBINARY

<p>O Snowflake usa esse tipo de dados como sinônimo de BINARY.</p><p>O Snowflake geralmente representa cada byte como 2 caracteres hexadecimais</p>

IMAGE

VARBINARY

<p>O Snowflake usa esse tipo de dados como sinônimo de BINARY.</p><p>O Snowflake geralmente representa cada byte como 2 caracteres hexadecimais</p>

Outros tipos de dados

T-SQL

Snowflake

Notas

CURSOR

*a ser definido

<p>Não é suportado pelo Snowflake.</p><p>Converta para auxiliares Cursor</p>

HIERARCHYID

*a ser definido

Não suportado pelo Snowflake

SQL_VARIANT

VARIANT

<p>Tamanho máximo de 16 MB compactado.</p><p>Um valor de qualquer tipo de dados pode ser implicitamente convertido em um valor VARIANT</p>

GEOMETRY

*a ser definido

Não suportado pelo Snowflake

GEOGRAPHY

GEOGRAPHY

Os objetos armazenados no tipo de dados GEOGRAPHY do Snowflake devem ser objetos geoespaciais WKT / WKB / EWKT / EWKB / GeoJSON para suportar objetos LineString e polígonos

TABLE

*a ser definido

Não suportado pelo Snowflake

ROWVERSION

*a ser definido

Não suportado pelo Snowflake

UNIQUEIDENTIFIER

VARCHAR

<p>O Snowflake usa o tipo STRING como sinônimo de VARCHAR. <br>Por causa da conversão<br>o Snowflake geralmente representa cada byte como 2 caracteres hexadecimais</p>

XML

VARIANT

​O Snowflake usa o tipo de dados VARIANT como sinônimo de XML

SYSNAME

VARCHAR(128)

Restrição NOT NULL adicionada à definição da coluna