SnowConvert : Types de données Transact

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Types de données

Numériques exacts et approximatifs

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:

  • Pour la conversion des types de données entiers (INT, SMALLINT, BIGINT, TINYINT), chacun est converti en alias dans Snowflake avec le même nom. Chacun de ces alias est en fait converti en NUMBER(38,0), un type de données considérablement plus grand que le type de données des entiers. Vous trouverez ci-dessous une comparaison de la gamme de valeurs pouvant être présentes dans chaque type de données :

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

    • SQLServerTINYINT : 0 à 255

    • SQLServer INT : -2^31 (-2 147 483 648) à 2^31-1 (2 147 483 647)

    • SQLServer BIGINT : -2^63 (-9 223 372 036 854 775 808) à 2^63-1 (9 223 372 036 854 775 807)

    • SQLServer SMALLINT : -2^15 (-32 768) à 2^15-1 (32 767)

  • Pour Money et Smallmoney : ​

    • Il n’est pas nécessaire de mettre les données monétaires entre guillemets simples ( “ ). Il est important de se rappeler que si vous pouvez spécifier des valeurs monétaires précédées d’un symbole de devise, le serveur SQL ne stocke aucune information monétaire associée au symbole, il ne stocke que la valeur numérique.

    • Faites attention pour traduire les DMLs

Date et heure

T-SQL

Snowflake

Remarques

DATE

DATE

​SQLServer accepte la plage de 0001-01-01 à 9999-12-31

DATETIME2

TIMESTAMP_NTZ(7)​

DATETIME de Snowflake est un alias de TIMESTAMP_NTZ

DATETIME

TIMESTAMP_NTZ(3)

DATETIME de Snowflake est un alias de TIMESTAMP_NTZ​

DATETIMEOFFSET

TIMESTAMP_TZ(7)

<p>La précision de l’horodatage de Snowflake est comprise entre 0 et 9 (<em>cette valeur est celle par défaut</em>)</p><p>Les opérations de Snowflake sont effectuées dans le fuseau horaire de la session en cours, contrôlé par le paramètre de session TIMEZONE</p>

SMALLDATETIME

TIMESTAMP_NTZ

<p>DATETIME de Snowflake tronque l’information TIME</p>< p>c’est-à-dire que 1955-12-13 12:43:10 est sauvegardé comme 1955-12-13</p>

TIME

TIME

<p>Ce type de données se comporte de la même manière sur les deux systèmes.</p><p>Plage de 00:00:00.0000000 à 23:59:59.9999999</p>

TIMESTAMP

TIMESTAMP

Il s’agit d’un type de données défini par l’utilisateur dans TSQL, il est donc converti en son équivalent dans l’horodatage Snowflake.

Chaînes de caractères

T-SQL

Snowflake

Remarques

CHAR

CHAR

​La taille maximale de la chaîne en octets de SQLServer est de 8 000, alors que celle de Snowflake est de 167 772 161.

TEXT​

TEXT

VARCHAR​

VARCHAR

La taille maximale de la chaîne en octets de SQLServer est de 8 000, alors que celle de Snowflake est de 167 772 161. SQLServer VARCHAR(MAX) n’a pas d’équivalent dans SnowFlake, il est converti en VARCHAR pour prendre la plus grande taille possible par défaut.

Chaînes de caractères Unicode

T-SQL

Snowflake

Remarques

NCHAR

NCHAR

Synonyme de VARCHAR sauf que la longueur par défaut est VARCHAR(1).

NTEXT

TEXT

<p>Snowflake utilise le type de données TEXT comme synonyme de VARCHAR</p><p>SQLServer NTEXT(MAX) n’a pas d’équivalent dans SnowFlake, il est converti en VARCHAR pour prendre la plus grande taille possible par défaut.</p>

NVARCHAR

VARCHAR

<p>Snowflake utilise ce type de données comme synonyme de VARCHAR</p><p>SQLServer NVARCHAR(MAX) n’a pas d’équivalent dans SnowFlake, il est converti en VARCHAR pour prendre la plus grande taille possible par défaut.</p>

Chaînes binaires

T-SQL

Snowflake

Remarques

BINARY

​BINARY

Dans Snowflake, la longueur maximale est de 8 MB (8 388 608 octets) et la longueur est toujours mesurée en termes d’octets.

VARBINARY

VARBINARY

<p>Snowflake utilise ce type de données comme synonyme de BINARY.</p><p>Snowflake représente souvent chaque octet comme 2 caractères hexadécimaux</p>

IMAGE

VARBINARY

<p>Snowflake utilise ce type de données comme synonyme de BINARY.</p><p>Snowflake représente souvent chaque octet comme 2 caractères hexadécimaux</p>

Autres types de données

T-SQL

Snowflake

Remarques

CURSOR

*à définir

<p>Non pris en charge par Snowflake.</p><p>Traduire dans les assistants de curseur</p>

HIERARCHYID

*à définir

Non pris en charge par Snowflake

SQL_VARIANT

VARIANT

<p>Taille maximale de 16 MB compressée.</p><p>Une valeur de n’importe quel type de données peut être implicitement convertie en valeur VARIANT</p>

GEOMETRY

*à définir

Non pris en charge par Snowflake

GEOGRAPHY

GEOGRAPHY

Les objets stockés dans le type de données GEOGRAPHY de Snowflake doivent être des objets géospatiaux WKT / WKB / EWKT / EWKB / GeoJSON pour prendre en charge les objets LineString et Polygon

TABLE

*à définir

Non pris en charge par Snowflake

ROWVERSION

*à définir

Non pris en charge par Snowflake

UNIQUEIDENTIFIER

VARCHAR

<p>Snowflake utilise le type STRING comme synonyme de VARCHAR.<br>En raison de la conversion<br>Snowflake représente souvent chaque octet comme 2 caractères hexadécimaux</p>

XML

VARIANT

​Snowflake utilise le type de données VARIANT comme synonyme de XML

SYSNAME

VARCHAR(128)

Contrainte NOT NULL ajoutée à la définition de la colonne