SnowConvert: Tipos de dados do Transact¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Tipos de dados¶
Números exatos e aproximados¶
T-SQL | Snowflake | Notes |
---|---|---|
T-SQL | Snowflake | Notes |
BIGINT | BIGINT | Note that BIGINT in Snowflake is an alias for NUMBER(38,0) [See note on this conversion below.] |
BIT | BOOLEAN | SQLServer only accepts 1, 0, or NULL |
DECIMAL | DECIMAL | Snowflake's DECIMAL is synonymous with NUMBER |
FLOAT | FLOAT | This data type behaves equally on both systems. Precision 7-15 digits, float (1-24) Storage 4 - 8 bytes, float (25-53) |
INT | INT | Note that INT in Snowflake is an alias for NUMBER(38,0) [See note on this conversion below.] |
MONEY | NUMBER(38, 4) | [See note on this conversion below.] |
REAL | REAL | Snowflake's REAL is synonymous with FLOAT |
SMALLINT | SMALLINT | This data type behaves equally |
SMALLMONEY | NUMBER(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.] |
NUMERIC | NUMERIC | 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 |