SnowConvert AI – SQL Server – Azure Synapse – Datentypen¶
Snowflake unterstützt die meisten grundlegenden SQL-Datentypen (mit einigen Einschränkungen) bei Verwendung in Spalten, lokalen Variablen, Ausdrücken, Parametern und anderen geeigneten Orten.
Applies to
SQL Server
Azure Synapse Analytics
Exakte und ungefähre Zahlenangaben¶
T-SQL |
Snowflake |
Anmerkungen |
|---|---|---|
BIGINT |
BIGINT |
Beachten Sie, dass BIGINT in Snowflake ein Alias für NUMBER(38,0) ist. |
BIT |
BOOLEAN |
SQLServer akzeptiert nur 1, 0 oder NULL |
DECIMAL |
DECIMAL |
DECIMAL von Snowflake ist gleichbedeutend mit NUMBER |
FLOAT |
FLOAT |
Dieser Datentyp verhält sich auf beiden Systemen gleich. |
INT |
INT |
Beachten Sie, dass INT in Snowflake ein Alias für NUMBER(38,0) ist. |
MONEY |
NUMBER(38, 4) |
[Siehe Hinweis zu dieser Konvertierung unten.] |
REAL |
REAL |
REAL von Snowflake ist gleichbedeutend mit FLOAT |
SMALLINT |
SMALLINT |
Dieser Datentyp verhält sich gleich |
SMALLMONEY |
NUMBER(38, 4) |
[Siehe Hinweis zu dieser Konvertierung unten.] |
TINYINT |
TINYINT |
Beachten Sie, dass TINYINT in Snowflake ein Alias für NUMBER(38,0) ist. |
NUMERIC |
NUMERIC |
NUMERIC von Snowflake ist gleichbedeutend mit NUMBER |
NOTE:
Bei der Konvertierung von Ganzzahl-Datentypen (INT, SMALLINT, BIGINT, TINYINT) wird jeder in den gleichnamigen Alias in Snowflake konvertiert. Jeder dieser Aliase wird tatsächlich in NUMBER(38.0) konvertiert, einen Datentyp, der wesentlich größer ist als der Datentyp Integer. Nachfolgend finden Sie einen Vergleich des Wertebereichs, der in jedem Datentyp vorhanden sein kann:
Snowflake NUMBER(38,0): -99999999999999999999999999999999999999 to +99999999999999999999999999999999999999
SQLServerTINYINT: 0 bis 255
SQLServer INT: -2^31 (-2.147.483.648) bis 2^31-1 (2.147.483.647)
SQLServer BIGINT: -2^63 (-9.223.372.036.854.775.808) bis 2^63-1 (9.223.372.036.854.775.807)
SQLServer SMALLINT: -2^15 (-32,768) bis 2^15-1 (32,767)
Für Geld und Kleinbeträge:
Währungs- oder Gelddaten müssen nicht in einfache Anführungszeichen ( ‚ ) gesetzt werden. Beachten Sie, dass Sie zwar Geldwerte mit einem Währungssymbol angeben können, SQL Server jedoch keine mit dem Symbol verbundenen Währungsinformationen speichert, sondern nur den numerischen Wert.
Bitte achten Sie auf die Übersetzungen für die DMLs
Datum und Uhrzeit¶
T-SQL |
Snowflake |
Anmerkungen |
|---|---|---|
DATE |
DATE |
SQLServer akzeptiert den Bereich von 0001-01-01 bis 9999-12-31 |
DATETIME2 |
TIMESTAMP_NTZ(7) |
Snowflakes DATETIME ist ein Alias für TIMESTAMP_NTZ |
DATETIME |
TIMESTAMP_NTZ(3) |
Snowflakes DATETIME ist ein Alias für TIMESTAMP_NTZ |
DATETIMEOFFSET |
TIMESTAMP_TZ(7) |
<p>Die Genauigkeit des Zeitstempels von Snowflake reicht von 0 bis 9 (<em>dieser Wert ist der Standardwert</em>)</p><p>Die Operationen von Snowflake werden in der Zeitzone der aktuellen Sitzung ausgeführt, die durch den Sitzungsparameter TIMEZONE gesteuert wird</p> |
SMALLDATETIME |
TIMESTAMP_NTZ |
<p>Snowflakes DATETIME schneidet die TIME-Informationen ab</p><p>d.h. 1955-12-13 12:43:10 wird als 1955-12-13 gespeichert</p> |
TIME |
TIME |
<p>Dieser Datentyp verhält sich auf beiden Systemen gleich.</p><p>Bereich 00:00:00,0000000 bis 23:59:59,9999999</p> |
TIMESTAMP |
TIMESTAMP |
Da dies ein benutzerdefinierter Datentyp in TSQL ist, wird er in sein Äquivalent in Snowflake Timestamp konvertiert. |
Zeichenfolgen¶
T-SQL |
Snowflake |
Anmerkungen |
|---|---|---|
CHAR |
CHAR |
Die maximale Zeichenfolgenlänge inSQLServer beträgt 8000 Byte, während sie in Snowflake 167772161 Byte beträgt. |
TEXT |
TEXT |
|
VARCHAR |
VARCHAR |
Die maximale Zeichenfolgenlänge inSQLServer beträgt 8000 Byte, während sie in Snowflake 167772161 Byte beträgt. VARCHAR(MAX) in SQLServer hat keine Entsprechung in SnowFlake und wird standardmäßig in VARCHAR konvertiert, um die größtmögliche Größe zu erhalten. |
Unicode-Zeichenfolgen¶
T-SQL |
Snowflake |
Anmerkungen |
|---|---|---|
NCHAR |
NCHAR |
Synonym für VARCHAR, jedoch mit der Ausnahme, dass die Standardlänge VARCHAR(1) ist. |
NTEXT |
TEXT |
<p>Snowflake verwendet den Datentyp TEXT als Synonym für VARCHAR</p><p> NTEXT (MAX) in SQLServer hat keine Entsprechung in SnowFlake und wird standardmäßig in VARCHAR konvertiert, um die größtmögliche Größe zu erhalten.</p> |
NVARCHAR |
VARCHAR |
<p>Snowflake verwendet diesen Datentyp als Synonym für VARCHAR</p><p>NVARCHAR(MAX) in SQLServer hat keine Entsprechung in SnowFlake und wird standardmäßig in VARCHAR konvertiert, um die größtmögliche Größe zu erhalten.</p> |
Binärzeichenfolgen¶
T-SQL |
Snowflake |
Anmerkungen |
|---|---|---|
BINARY |
BINARY |
In Snowflake beträgt die maximale Länge 8 MB (8.388.608 Bytes) und die Länge wird immer in Bytes gemessen. |
VARBINARY |
VARBINARY |
<p>Snowflake verwendet diesen Datentyp als Synonym für BINARY.</p><p>Snowflake stellt jedes Byte oft als 2 hexadezimale Zeichen dar</p> |
IMAGE |
VARBINARY |
<p>Snowflake verwendet diesen Datentyp als Synonym für BINARY.</p><p>Snowflake stellt jedes Byte oft als 2 hexadezimale Zeichen dar</p> |
Andere Datentypen¶
T-SQL |
Snowflake |
Anmerkungen |
|---|---|---|
CURSOR |
*noch zu definieren_ |
<p>Wird von Snowflake nicht unterstützt.</p><p>In Cursor-Hilfsfunktionen übersetzen</p> |
HIERARCHYID |
*noch zu definieren_ |
Wird von Snowflake nicht unterstützt |
SQL_VARIANT |
VARIANT |
<p>Maximale Größe von 16 MB komprimiert.</p><p>Ein Wert eines beliebigen Datentyps kann implizit in einen VARIANT-Wert umgewandelt werden</p> |
GEOMETRY |
*noch zu definieren_ |
Wird von Snowflake nicht unterstützt |
GEOGRAPHY |
GEOGRAPHY |
Die im Datentyp GEOGRAPHY von Snowflake gespeicherten Objekte müssen WKT- / WKB- / EWKT-/ EWKB- / GeoJSON-Geodatenobjekte sein, um LineString- und Polygon-Objekte zu unterstützen |
TABLE |
*noch zu definieren_ |
Wird von Snowflake nicht unterstützt |
ROWVERSION |
*noch zu definieren_ |
Wird von Snowflake nicht unterstützt |
UNIQUEIDENTIFIER |
VARCHAR |
<p>Snowflake verwendet STRING als Synonym für VARCHAR.<br>Aufgrund der Konvertierung<br>stellt Snowflake jedes Byte oft als 2 hexadezimale Zeichen dar</p> |
XML |
VARIANT |
Snowflake verwendet VARIANT als Synonym für den Datentyp XML |
SYSNAME |
VARCHAR(128) |
NOT NULL-Einschränkung zur Spaltendefinition hinzugefügt |