SnowConvert: Transact Datentypen

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Datentypen

Exakte und ungefähre Zahlenangaben

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:

  • 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äre Zeichenfolgen

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