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-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:
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 |