SnowConvert AI – Redshift – Integrierte Funktionen

Bemerkung

Weitere Informationen zu integrierten Funktionen und ihren Snowflake-Äquivalenten finden Sie auch unter Allgemeine integrierte Funktionen.

Aggregatfunktionen

Aggregatfunktionen berechnen einen einzelnen Ergebniswert aus einer Menge von Eingabewerten. (Redshift SQL-Sprachreferenz – Aggregatfunktionen).

Redshift

Snowflake

ANY_VALUE ( [ DISTINCT

ALL ] expression )

AVG ( [ DISTINCT | ALL ] expression )

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/avg“>AVG</a> ( [ DISTINCT ] expression)</p><p></p><p><em>Anmerkungen: Redshift und Snowflake können aufgrund von Rundungen/Formatierungen des Datentyps unterschiedliche Genauigkeiten/Dezimalzahlen anzeigen.</em></p>

COUNT

COUNT

LISTAGG

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/listagg“>LISTAGG</a> </p><p></p><p><em>Anmerkungen: DISTINCT von Redshift ignoriert nachstehende Leerzeichen (‚a ‚ = ‚a‘); Bei Snowflake ist dies nicht der Fall. (Siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

MAX

MAX

MEDIAN

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/median“>MEDIAN</a> </p><p></p><p><em>Anmerkungen<strong>: Snowflake erlaubt nicht die Verwendung von Datumstypen</strong>, während RedShift dies tut. (Siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

MIN

MIN

PERCENTILE_CONT

PERCENTILE_CONT

STDDEV/STDDEV_SAMP ( [ DISTINCT

ALL ] expression)

STDDEV_POP ( [ DISTINCT

SUM

SUM

VARIANCE/VAR_SAMP ( [ DISTINCT

ALL ] expression)

VAR_POP ( [ DISTINCT

Array-Funktionen

Erstellt ein Array des SUPER-Datentyps. (Redshift SQL-Sprachreferenz – Array-Funktionen).

Redshift

Snowflake

ARRAY ( [ expr1 ] [ , expr2 [ , … ] ] )

ARRAY_CONSTRUCT

( [ <expr1> ] [ , <expr2> [ , … ] ] )

ARRAY_CONCAT ( super_expr1, super_expr2 )

ARRAY_CAT ( <array1> , <array2> )

ARRAY_FLATTEN

( super_expr1,super_expr2,.. )

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/array_flatten“>ARRAY_FLATTEN</a> ( &#x3C;array> ) </p><p></p><p><em>Anmerkungen: Die Ergebnisse können zwischen den Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

GET_ARRAY_LENGTH ( super_expr )

ARRAY_SIZE ( <array> | <variant>)

SPLIT_TO_ARRAY ( string,delimiter )

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/split“>SPLIT</a> (&#x3C;string>, &#x3C;separator>)</p><p></p><p><em>Anmerkungen: Redshift erlaubt fehlende Trennzeichen, in Snowflake sind sie erforderlich; die Standardeinstellung ist Komma</em></p>

SUBARRAY ( super_expr, start_position, length )

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/array_slice“>ARRAY_SLICE</a> ( &#x3C;array> , &#x3C;from> , &#x3C;to> )</p><p></p><p><em>Anmerkungen: Funktionsnamen und das zweite Argument unterscheiden sich; passen Sie die Argumente für Äquivalenzwecke an.</em></p>

Bedingte Ausdrücke

Redshift

Snowflake

DECODE

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/decode“>DECODE</a> </p><p></p><p><em>Anmerkungen:</em> <em>Die Ergebnisse können zwischen den Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

COALESCE ( expression, expression, … )

COALESCE ( expression, expression, … )

GREATEST ( value [, …] )

GREATEST_IGNORE_NULLS ( <expr1> [, <expr2> … ] )

LEAST ( value [, …] )

LEAST_IGNORE_NULLS ( <expr1> [, <expr2> … ])

NVL( expression, expression, … )

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/nvl“><em>NVL</em></a> <em>( expression, expression )</em></p><p></p><p><em>Anmerkungen: NVL von Redshift akzeptiert mehrere Argumente; NVL von Snowflake akzeptiert nur zwei. Zum Anpassen an das Redshift-Verhalten wird NVL mit mehr als zwei Argumenten in COALESCE konvertiert.</em></p>

NVL2

NVL2

NULLIF

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/nullif“>NULLIF</a> </p><p></p><p><em>Anmerkungen: NULLIF von Redshift ignoriert im Gegensatz zu Snowflake bei einigen Zeichenfolgenvergleichen nachstehende Leerzeichen. Daher fügt die Transformation zu Äquivalenzzwecken RTRIM hinzu.</em></p>

Formatierungsfunktionen für Datentypen

Formatierungsfunktionen für Datentypen bieten eine einfache Möglichkeit, Werte von einem Datentyp in einen anderen zu konvertieren. Für jede dieser Funktionen ist das erste Argument immer der zu formatierende Wert und das zweite Argument enthält die Vorlage für das neue Format. (Redshift SQL-Sprachreferenz – Formatierungsfunktionen für Datentypen).

Redshift

Snowflake

TO_CHAR

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/to_char“>TO_CHAR</a> </p><p></p><p><em>Anmerkungen: Snowflake unterstützt diese Funktion nur teilweise (siehe</em> <a href=“../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0006“><em>SSC-EWI-0006</em></a><em>).</em></p>

TO_DATE

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/to_date“>TO_DATE</a> </p><p></p><p><em>Anmerkungen: <code>TO_DATE</code> von Snowflake schlägt bei ungültigen Daten wie „20010631“ (der Juni hat 30 Tage) fehl, im Gegensatz zum weniger rigiden <code>TO_DATE</code> von Redshift. Verwenden Sie <code>TRY_TO_DATE</code> in Snowflake, um diese Fälle durch die Rückgabe von NULL zu handhaben (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/redshift/ssc-fdm-rs0004.md“><em>SSC-FDM-RS0004</em></a><em>,</em> <a href=“../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0006“><em>SSC-EWI-0006</em></a><em>,</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/general/ssc-fdm-0032.md“><em>SSC-FDM-0032</em></a><em>).</em></p>

Funktionen für Datum/Uhrzeit

Redshift

Snowflake

ADD_MONTHS

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/add_months“>ADD_MONTHS</a> </p><p></p><p><em>Anmerkungen:</em> <em>Die Ergebnisse können zwischen den Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

AT TIME ZONE ‚timezone‘

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/convert_timezone“>CONVERT_TIMEZONE</a> ( &#x3C;source_tz> , &#x3C;target_tz> , &#x3C;source_timestamp_ntz> )</p><p><br></p><p><a href=“https://docs.snowflake.com/en/sql-reference/functions/convert_timezone“>CONVERT_TIMEZONE</a> ( &#x3C;target_tz> , &#x3C;source_timestamp> ) </p><p></p><p><em>Anmerkungen: In Redshift ist der Standardwert UTC; für die Snowflake-Funktion ist die explizite UTC-Spezifikation erforderlich. Daher wird sie als Zielzeitzone hinzugefügt.</em></p>

CONVERT_TIMEZONE

CONVERT_TIMEZONE

CURRENT_DATE

CURRENT_DATE()

DATE

DATE

DATEADD/DATE_ADD ( datepart, interval, {date | time | timetz | timestamp} )

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/dateadd“>DATE_ADD</a> ( &#x3C;date_or_time_part>, &#x3C;value>, &#x3C;date_or_time_expr> )</p><p></p><p><em>Anmerkungen: Ungültige Datumsteilformate werden in Snowflake-kompatible Formate übersetzt.</em></p>

DATEDIFF/DATE_DIFF

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/datediff“>DATEDIFF</a> </p><p></p><p><em>Anmerkungen: Ungültige Datumsteilformate werden in Snowflake-kompatible Formate übersetzt.</em></p>

DATE_PART/PGDATE_PART

DATE_PART

Notes: this function is partially supported by Snowflake. (See SSC-EWI-0006).

DATE_PART_YEAR (date)

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/year“>YEAR</a> ( &#x3C;date_or_timestamp_expr> ) </p><p></p><p><em>Anmerkungen:</em> <em>Die Ergebnisse können zwischen Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

DATE_TRUNC

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/date_trunc“>DATE_TRUNC</a> </p><p></p><p><em>Anmerkungen: Ungültige Datumsteilformate werden in Snowflake-kompatible Formate übersetzt.</em> </p>

GETDATE()

GETDATE()

LAST_DAY

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/last_day“>LAST_DAY</a> </p><p></p><p><em>Anmerkungen:</em> <em>Die Ergebnisse können zwischen den Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

NEXT_DAY

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/next_day“>NEXT_DAY</a> </p><p></p><p><em>Anmerkungen:</em> <em>Die Ergebnisse können zwischen den Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

SYSDATE

SYSDATE()

TIMESTAMP

TO_TIMESTAMP

TRUNC

TRUNC

EXTRACT

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/extract“>EXTRACT</a><br><br><em>Anmerkungen:</em> Teilzeit oder Datumszeit unterstützt: DAY, DOW, DOY, EPOCH, HOUR, MINUTE, MONTH, QUARTER, SECOND, WEEK, YEAR. </p>

Bemerkung

Redshift timestamps default to microsecond precision (6 digits); Snowflake defaults to nanosecond precision (9 digits). Adjust precision as needed using ALTER SESSION (for example, ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF2';). Precision loss may occur depending on the data type used.

Since some formats are incompatible with Snowflake, adjusting the account parameters DATE_INPUT_FORMAT or TIME_INPUT_FORMAT might maintain functional equivalence between platforms.

Hashfunktionen

Eine Hash-Funktion ist eine mathematische Funktion, die einen numerischen Eingabewert in einen anderen Wert umwandelt. (Redshift SQL-Sprachreferenz – Hash-Funktionen).

Redshift

Snowflake

FNV_HASH (value [, seed])

HASH ( <expr> [ , <expr> … ]

JSON-Funktionen

Redshift

Snowflake

JSON_EXTRACT_PATH_TEXT

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/json_extract_path_text“>JSON_EXTRACT_PATH_TEXT</a> </p><p></p><p><em>Anmerkungen:</em> </p><ol><li><em>Redshift behandelt Zeilenumbruch-, Tabulator- und Wagenrücklaufzeichen literal; Snowflake interpretiert sie.</em></li><li><em>Ein JSON-Literal und ein durch Punkte getrennter Pfad sind erforderlich, um auf verschachtelte Objekte in der Snowflake-Funktion zugreifen zu können.</em></li><li><em>Pfade mit Leerzeichen in Variablen müssen in Anführungszeichen gesetzt werden.</em></li></ol>

Mathematische Funktionen

Bemerkung

Redshift- und Snowflake-Ergebnisse können sich in Bezug auf die Skalierung unterscheiden.

Zeichenfolgenfunktionen

Zeichenfolgenfunktionen verarbeiten und bearbeiten Zeichenfolgen oder Ausdrücke, die Zeichenfolgen ergeben. (Redshift SQL-Sprachreferenz – Zeichenfolgenfunktionen).

Redshift

Snowflake

ASCII

ASCII

BTRIM

TRIM

CHAR_LENGTH

LENGTH

CHARACTER_LENGTH

LENGTH

CHARINDEX

CHARINDEX

CHR

CHR

CONCAT

CONCAT

INITCAP

INITCAP

LEFT/RIGHT

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/left“>LEFT</a>/<a href=“https://docs.snowflake.com/en/sql-reference/functions/right“>RIGHT</a> </p><p></p><p><em>Anmerkungen: Für negative Längen in <code>LEFT</code>/<code>RIGHT</code> gibt Snowflake eine leere Zeichenfolge zurück; Redshift löst einen Fehler aus.</em></p>

LEN

LEN

LOWER

LOWER

OCTET_LENGTH

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/octet_length“>OCTET_LENGTH</a> </p><p></p><p><em>Anmerkungen:</em> <em>Die Ergebnisse können zwischen den Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

QUOTE_IDENT (string)

CONCAT (‚“‘, string, ‚“‘)

REGEXP_REPLACE

REGEXP_REPLACE

Notes: This function includes a parameters argument that enables the user to interpret the pattern using the Perl Compatible Regular Expression (PCRE) dialect, represented by the p value, this is removed to avoid any issues. (See SSC-EWI-0009, SC-FDM-0032, SSC-FDM-PG0011).

REPEAT

REPEAT

REPLACE

REPLACE

REPLICATE

REPEAT

REVERSE

REVERSE

SOUNDEX

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/soundex“>SOUNDEX</a> </p><p></p><p><em>Anmerkungen: Bei bestimmten Sonderzeichen können die Ergebnisse zwischen Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

SPLIT_PART

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/split_part“>SPLIT_PART</a> </p><p></p><p><em>Anmerkungen: Snowflake und Redshift handhaben SPLIT_PART bei Sortierungen ohne Berücksichtigung der Groß-/Kleinschreibung unterschiedlich.</em></p>

STRPOS (string, substring )

POSITION ( <expr1> IN <expr> )

SUBSTRING

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/substr“><em>SUBSTRING</em></a> </p><p></p><p><em>Anmerkungen:</em> Snowflake unterstützt diese Funktion teilweise. <code>SUBSTRING</code> von Redshift mit einem nicht-positiven Wert für <code>start_position</code> berechnet <code>start_position + number_characters</code> (gibt ‚‘ zurück, wenn das Ergebnis nicht positiv ist). Das Verhalten von Snowflake ist anders. (Siehe <a href=“../../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/redshift/ssc-ewi-rs0006.md“>SSC-EWI-RS0006</a>).</p>

TEXTLEN

LENGTH

TRANSLATE

TRANSLATE

TRIM

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/trim“><em>TRIM</em></a> </p><p></p><p><em>Anmerkungen: Redshift verwendet Schlüsselwörter (BOTH, LEADING, TRAILING) zum Kürzen; Snowflake verwendet TRIM, LTRIM, RTRIM.</em></p>

UPPER

UPPER

Informationsfunktionen für SUPER-Typ

Redshift

Snowflake

IS_ARRAY

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/is_array“>IS_ARRAY</a> </p><p></p><p><em>Anmerkungen:</em> <em>Die Ergebnisse können zwischen den Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

IS_BOOLEAN

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/is_boolean“>IS_BOOLEAN</a> </p><p></p><p><em>Anmerkungen:</em> <em>Die Ergebnisse können zwischen den Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

Fensterfunktionen

Redshift

Snowflake

AVG

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/avg“><em>AVG</em></a> </p><p></p><p><em>Anmerkungen: Die AVG-Rundung/-Formatierung kann je nach Datentyp zwischen Redshift und Snowflake variieren.</em></p>

COUNT

COUNT

DENSE_RANK

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/dense_rank“>DENSE_RANK</a> </p><p></p><p><em>Anmerkungen: ORDER BY ist in Snowflake obligatorisch; fehlende Klauseln werden durch <code>ORDER BY 1</code> ersetzt.</em></p>

FIRST_VALUE

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/first_value“>FIRST_VALUE</a> </p><p></p><p><em>Anmerkungen: Snowflake benötigt ORDER BY; fehlende Klauseln erhalten <code>ORDER BY &#x3C;expr>.</code></em></p>

LAG

LAG

LAST_VALUE

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/last_value“>LAST_VALUE</a> </p><p></p><p><em>Anmerkungen: Snowflake benötigt ORDER BY; fehlende Klauseln erhalten <code>ORDER BY &#x3C;expr></code>.</em></p>

LEAD

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/lead“>LEAD</a> </p><p></p><p><em>Anmerkungen: Redshift erlaubt Offsets für Konstanten oder Ausdrücke; Snowflake erlaubt nur Offset</em>s für Konstanten.</p>

LISTAGG

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/listagg“>LISTAGG</a> </p><p></p><p><em>Anmerkungen: DISTINCT von Redshift ignoriert nachstehende Leerzeichen (‚a ‚ = ‚a‘); Bei Snowflake ist dies nicht der Fall. (Siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

MEDIAN

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/median“>MEDIAN</a> </p><p></p><p><em>Anmerkungen<strong>: Snowflake erlaubt nicht die Verwendung von Datumstypen</strong>, während RedShift dies tut. (Siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

NTH_VALUE

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/nth_value“>NTH_VALUE</a> </p><p></p><p><em>Anmerkungen: ORDER BY ist in Snowflake obligatorisch; fehlende Klauseln werden durch <code>ORDER BY 1</code> ersetzt.</em></p>

NTILE

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/ntile“>NTILE</a> </p><p></p><p><em>Anmerkungen: ORDER BY ist in Snowflake obligatorisch; fehlende Klauseln werden durch <code>ORDER BY 1</code> ersetzt. (Siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

PERCENT_RANK

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/percent_rank“>PERCENT_RANK</a> </p><p></p><p><em>Anmerkungen: ORDER BY ist in Snowflake obligatorisch; fehlende Klauseln werden durch <code>ORDER BY 1</code> ersetzt.</em></p>

PERCENTILE_CONT

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/percentile_cont“>PERCENTILE_CONT</a> </p><p></p><p><em>Anmerkungen: Das Runden variiert zwischen den Plattformen.</em></p>

PERCENTILE_DISC

PERCENTILE_DISC

RANK

RANK

RATIO_TO_REPORT

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/ratio_to_report“>RATIO_TO_REPORT</a> </p><p></p><p><em>Anmerkungen:</em> <em>Die Ergebnisse können zwischen den Plattformen variieren (siehe</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md“>SSC-FDM-PG0013</a><em>).</em></p>

ROW_NUMBER

<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/row_number“>ROW_NUMBER</a> </p><p></p><p>A<em>nmerkungen: ORDER BY ist in Snowflake obligatorisch; fehlende Klauseln werden durch <code>ORDER BY 1</code> ersetzt.</em></p>

STDDEV_SAMP

STDDEV

VAR_SAMP

VARIANCE

Bekannte Probleme

  1. For more information, see Quoted identifiers in functions.

IDENTITY

Beschreibung

Die Funktion IDENTITY ist eine Systemfunktion, die auf eine bestimmte Spalte einer Tabelle wirkt, um den Anfangswert für die Identität zu bestimmen. Wenn der Anfangswert nicht verfügbar ist, wird standardmäßig der in der Funktion angegebene Wert verwendet. Dies wird in eine Sequenz in Snowflake übersetzt.

Grammatikalische Syntax

 "identity"(oid_id, oid_table_id, default)

Bemerkung

Diese Funktion wird in Redshift nicht mehr unterstützt. Sie verwendet den Standardwert, um die Identität zu definieren und verhält sich wie eine Standard-Identitätsspalte.

Beispielhafte Quellcode-Muster

Eingabecode:

Redshift
 CREATE TABLE IF NOT EXISTS table_test
(
    id integer,
    inventory_combo BIGINT  DEFAULT "identity"(850178, 0, '5,3'::text)
);

INSERT INTO table_test (id) VALUES
    (1),
    (2),
    (3),
    (4);

SELECT * FROM table_test;
Ergebnisse

id

inventory_combo

1

5

2

8

3

11

3

14

Ausgabecode:

Snowflake
 CREATE TABLE IF NOT EXISTS table_test
(
    id integer,
    inventory_combo BIGINT IDENTITY(5,3) ORDER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "11/13/2024",  "domain": "test" }}';

INSERT INTO table_test (id) VALUES
    (1),
    (2),
    (3),
    (4);

SELECT * FROM
    table_test;
Ergebnisse

id

inventory_combo

1

5

2

8

3

11

3

14

Zugehörige EWIs

Es gibt keine bekannten Probleme.

TO_CHAR

Datumsfunktion

Beschreibung

TO_CHAR konvertiert einen Zeitstempel oder numerischen Ausdruck in ein Zeichenfolgen-Datenformat. ([Redshift SQL-Referenz: TO_CHAR-Funktion](https://docs.aws.amazon.com/redshift/latest/dg/r_TO_CHAR. html))

Warnung

Diese Funktion wird in Snowflake teilweise unterstützt.

For more information, see Quoted identifiers in functions.

Grammatikalische Syntax

 TO_CHAR(timestamp_expression | numeric_expression , 'format')

Beispielhafte Quellcode-Muster

Eingabecode:

Redshift

 SELECT TO_CHAR(timestamp '2009-12-31 23:15:59', 'YYYY'),
       TO_CHAR(timestamp '2009-12-31 23:15:59', 'YYY'),
       TO_CHAR(timestamp '2009-12-31 23:15:59', 'TH'),
       "to_char"(timestamp '2009-12-31 23:15:59', 'MON-DY-DD-YYYY HH12:MIPM'),
       TO_CHAR(125.8, '999.99'),
       "to_char"(125.8, '999.99');
Ergebnisse

TO_CHAR

TO_CHAR

TO_CHAR

TO_CHAR

TO_CHAR

2009

009

DEC-THU-31-2009 11:15PM

125,80

125,80

Ausgabecode:

Snowflake
 SELECT
       TO_CHAR(timestamp '2009-12-31 23:15:59', 'YYYY'),
       PUBLIC.YEAR_PART_UDF(timestamp '2009-12-31 23:15:59', 3),
       TO_CHAR(timestamp '2009-12-31 23:15:59', 'TH') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - TH FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
       PUBLIC.MONTH_SHORT_UDF(timestamp '2009-12-31 23:15:59', 'uppercase') || '-' || PUBLIC.DAYNAME_SHORT_UDF(timestamp '2009-12-31 23:15:59', 'uppercase') || TO_CHAR(timestamp '2009-12-31 23:15:59', '-DD-YYYY HH12:MI') || PUBLIC.MERIDIAN_INDICATORS_UDF(timestamp '2009-12-31 23:15:59', 'uppercase'),
       TO_CHAR(125.8, '999.99'),
       TO_CHAR(125.8, '999.99');
Ergebnisse

TO_CHAR

TO_CHAR

2009

Dec-Thu-31-2009 11:15PM

Bekannte Probleme

Es wurden keine Probleme gefunden.

Zugehörige EWIs

  • SSC-EWI-0006: Das aktuelle Datumsformat/numerische Format weist in Snowflake möglicherweise ein anderes Verhalten auf.

Für Datetimes-Werte

Übersetzungsspezifikation für die TO_CHAR-Funktion bei der Umwandlung von Datums- oder Zeitstempelwerten in eine Zeichenfolge

Beschreibung

Die folgenden Formatzeichenfolgen gelten für Funktionen wie TO_CHAR. Diese Zeichenfolgen können Datetime-Trennzeichen enthalten (z. B. „-“, „/“, oder „:“) und die folgenden „dateparts“ und „timeparts“. (Redshift-Referenzseite Datetime-Formatzeichenfolgen)

Grammatikalische Syntax

TO_CHAR (timestamp_expression, 'format')

In der folgenden Tabelle finden Sie die Zuordnung der einzelnen Formatelemente zu Snowflake:

Redshift

Snowflake

BC, AD, bc, ad (Groß- und Kleinbuchstaben als Ära-Indikatoren)

PUBLIC.ERA_INDICATORS_UDF

B.C.,. A.D., b.c., a.d. (Groß- und Kleinbuchstaben Ära-Indikatoren mit Punkten)

PUBLIC.ERA_INDICATORS_WITH_POINTS_UDF

CC

PUBLIC.CENTURY_UDF

YYYY und YY

Direkt unterstützt

YYY und Y

PUBLIC.YEAR_PART_UDF

Y,YYY

PUBLIC.YEAR_WITH_COMMA_UDF

IYYY

YEAROFWEEKISO

I, IY, IYY

PUBLIC.ISO_YEAR_PART_UDF

Q

QUARTER

MONTH, Month, month

PUBLIC.FULL_MONTH_NAME_UDF

MON, Mon, mon

PUBLIC.MONTH_SHORT_UDF

RM, rm

PUBLIC.ROMAN_NUMERALS_MONTH_UDF

W

PUBLIC.WEEK_OF_MONTH_UDF

WW

PUBLIC.WEEK_NUMBER_UDF

IW

WEEKISO

DAY, Day, day

PUBLIC.DAYNAME_LONG_UDF

DY, Dy, dy

PUBLIC.DAYNAME_SHORT_UDF

DDD

DAYOFYEAR

IDDD

PUBLIC.DAY_OF_YEAR_ISO_UDF

D

<p><code>PUBLIC.DAY_OF_WEEK_UDF</code> </p><p></p><p><em>Anmerkungen: Damit diese UDF ordnungsgemäß funktioniert, sollte für den Snowflake-Sitzungsparameter <code>WEEK_START</code> der Standardwert (<code>0</code>) eingestellt sein.</em></p>

ID

DAYOFWEEKISO

J

PUBLIC.JULIAN_DAY_UDF

HH24

Direkt unterstützt

HH

HH12

HH12

Direkt unterstützt

MI

Direkt unterstützt

SS

Direkt unterstützt

MS

FF3

US

FF6

AM, PM, am, pm (Groß- und Kleinbuchstaben-Meridianindikatoren)

PUBLIC.MERIDIAN_INDICATORS_UDF

A.M., P.M., a.m., p.m. (Groß- und Kleinschreibung der Meridianindikatoren mit Punkten)

PUBLIC.MERIDIAN_INDICATORS_WITH_POINTS_UDF

TZ und tz

<p><code>UTC</code> und <code>utc</code> </p><p></p><p><em>Anmerkungen: Laut der</em> <a href=“https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz“><em>Redshift-Dokumentation</em></a><em> werden alle Zeitstempel mit Zeitzone in UTC gespeichert, wodurch dieses Formatelement ein festes Ergebnis zurückgibt.</em></p>

OF

<p>+00 </p><p></p><p><em>Anmerkungen: Laut der</em> <a href=“https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz“><em>Redshift-Dokumentation</em></a><em> werden alle Zeitstempel mit Zeitzone in UTC gespeichert, wodurch dieses Formatelement ein festes Ergebnis zurückgibt.</em></p>

SSSS

PUBLIC.SECONDS_PAST_MIDNIGHT

SP

Anmerkungen: Dies ist ein PostgreSQL -Vorlagenmuster-Modifikator für den Rechtschreibmodus, in Redshift hat er jedoch keine Wirkung. Daher wird er aus der Ausgabe entfernt.

FX

Anmerkungen: Dies ist ein weiterer Vorlagenmuster-Modifikator für das feste Format, der jedoch für die TO_CHAR-Funktion keine Wirkung hat. Daher wird er entfernt.

Beispielhafte Quellcode-Muster

Direkte Transformation von Formatelementen (keine Funktionen/UDFs)

Das Ergebnis wird als eine einzige TO_CHAR-Funktion erhalten

Redshift
Abfrage
 SELECT TO_CHAR('2013-10-03 13:50:15.456871'::TIMESTAMP, 'DD/MM/YY HH:MI:SS.MS') AS col1;
Result
+----------------------+
|col1                  |
+----------------------+
|03/10/13 01:50:15.456 |
+----------------------+

Snowflake
Abfrage
 SELECT TO_CHAR('2013-10-03 13:50:15.456871'::TIMESTAMP, 'DD/MM/YY HH12:MI:SS.FF3') AS col1;
Result
+----------------------+
|col1                  |
+----------------------+
|03/10/13 01:50:15.456 |
+----------------------+

Formattransformation mit Funktionen/UDFs

Das Ergebnis ist eine Verkettung mehrerer TO_CHAR, UDFs und integrierter Snowflake-Funktionen, die die entsprechende Zeichenfolgendarstellung des Werts für Datum und Uhrzeit erzeugen

Redshift
Abfrage
 SELECT TO_CHAR(DATE '2025-07-05', '"Today is " Month DAY DD, "it belongs to the week " IW') AS result;
Result
+-------------------------------------------------------------+
|result                                                       |
+-------------------------------------------------------------+
|Today is  July      SATURDAY  05, it belongs to the week  27 |
+-------------------------------------------------------------+

Snowflake
Abfrage
 SELECT
    'Today is ' ||
    TO_CHAR(DATE '2025-07-05', ' ') ||
    PUBLIC.FULL_MONTH_NAME_UDF(DATE '2025-07-05', 'firstOnly') ||
    ' ' ||
    PUBLIC.DAYNAME_LONG_UDF(DATE '2025-07-05', 'uppercase') ||
    TO_CHAR(DATE '2025-07-05', ' DD, ') ||
    'it belongs to the week ' ||
    TO_CHAR(DATE '2025-07-05', ' ') ||
    WEEKISO(DATE '2025-07-05') AS result;
Result
+-------------------------------------------------------------+
|result                                                       |
+-------------------------------------------------------------+
|Today is  July      SATURDAY  05, it belongs to the week  27 |
+-------------------------------------------------------------+

Zitierter Text

Formatelemente in doppelten Anführungszeichen werden direkt in die Ausgabe eingefügt, ohne dass sie interpretiert werden, doppelte Anführungszeichen mit Escapezeichen werden in ihr Snowflake-Äquivalent umgewandelt.

Redshift
Abfrage
 SELECT
    TO_CHAR(DATE '2025-01-16', 'MM "TESTING DD" DD') AS result1,
    TO_CHAR(DATE '2025-01-16', 'MM TESTING \\"DD\\" DD') AS result2,
    TO_CHAR(DATE '2025-01-16', 'MM "TESTING \\"DD\\"" DD') AS result3;
Result
+-----------------+-------------------+-------------------+
|result1          |result2            |result3            |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+

Snowflake
Abfrage
 SELECT
    TO_CHAR(DATE '2025-01-16', 'MM ') || 'TESTING DD' || TO_CHAR(DATE '2025-01-16', ' DD') AS result1,
    TO_CHAR(DATE '2025-01-16', 'MM TEST') || PUBLIC.ISO_YEAR_PART_UDF(DATE '2025-01-16', 1) || TO_CHAR(DATE '2025-01-16', 'NG ""DD"" DD') AS result2,
    TO_CHAR(DATE '2025-01-16', 'MM ') || 'TESTING "DD"' || TO_CHAR(DATE '2025-01-16', ' DD') AS result3;
Result
+-----------------+-------------------+-------------------+
|result1          |result2            |result3            |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+

Bekannte Probleme

Vorlagenmuster-Modifikatoren nicht unterstützt

Die folgenden Formatvorlagen-Modifikatoren:

  • FM (Füllmodus)

  • TH und th (Suffix der Ordnungszahl in Groß- und Kleinbuchstaben)

  • TM (Übersetzungsmodus)

Werden nicht unterstützt; wenn sie in ein Format eingeschlossen werden, wird SSC-EWI-0006 generiert.

Eingabecode:

 SELECT TO_CHAR(CURRENT_DATE, 'FMMonth'),
TO_CHAR(CURRENT_DATE, 'DDTH'),
TO_CHAR(CURRENT_DATE, 'DDth'),
TO_CHAR(CURRENT_DATE, 'TMMonth');

Ausgabecode:

 SELECT
TO_CHAR(CURRENT_DATE(), 'FM') || PUBLIC.FULL_MONTH_NAME_UDF(CURRENT_DATE(), 'firstOnly') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - FMMonth FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
TO_CHAR(CURRENT_DATE(), 'DDTH') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - DDTH FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
TO_CHAR(CURRENT_DATE(), 'DDth') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - DDth FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
TO_CHAR(CURRENT_DATE(), 'TM') || PUBLIC.FULL_MONTH_NAME_UDF(CURRENT_DATE(), 'firstOnly') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - TMMonth FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!;

Parameter formatieren, der über die Variable übergeben wird

Wenn der Format-Parameter als Variable statt als String-Literal übergeben wird, kann die Transformation von Format-Elementen nicht angewandt werden. In den Verwendungen der Funktion wird eine FDM hinzugefügt, die darauf hinweist.

Eingabecode:

 SELECT TO_CHAR(d, 'YYYY/MM/DD'),
TO_CHAR(d, f)
FROM (SELECT TO_DATE('2001-01-01','YYYY-MM-DD') as d, 'DD/MM/YYYY' as f);

Ausgabecode:

 SELECT TO_CHAR(d, 'YYYY/MM/DD'),
--** SSC-FDM-0032 - PARAMETER 'format_string' IS NOT A LITERAL VALUE, TRANSFORMATION COULD NOT BE FULLY APPLIED **
TO_CHAR(d, f)
FROM (SELECT TO_DATE('2001-01-01','YYYY-MM-DD') as d, 'DD/MM/YYYY' as f);

Zugehörige EWIs

  1. SSC-EWI-0006: Das aktuelle Datumsformat/numerische Format weist in Snowflake möglicherweise ein anderes Verhalten auf.

  2. [SSC-FDM-0032](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0032): Parameter ist kein Literalwert, Transformation konnte nicht vollständig angewendet werden