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> |
<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> |
|
<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> |
|
STDDEV/STDDEV_SAMP ( [ DISTINCT |
ALL ] expression) STDDEV_POP ( [ DISTINCT |
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 [ , … ] ] ) |
( [ <expr1> ] [ , <expr2> [ , … ] ] ) |
ARRAY_CONCAT ( super_expr1, super_expr2 ) |
ARRAY_CAT ( <array1> , <array2> ) |
( super_expr1,super_expr2,.. ) |
<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/array_flatten“>ARRAY_FLATTEN</a> ( <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> (<string>, <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> ( <array> , <from> , <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 |
|---|---|
<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> |
<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 |
|---|---|
<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> |
|
<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 |
|---|---|
<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> |
|
<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/convert_timezone“>CONVERT_TIMEZONE</a> ( <source_tz> , <target_tz> , <source_timestamp_ntz> )</p><p><br></p><p><a href=“https://docs.snowflake.com/en/sql-reference/functions/convert_timezone“>CONVERT_TIMEZONE</a> ( <target_tz> , <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> |
|
DATEADD/DATE_ADD ( datepart, interval, {date | time | timetz | timestamp} ) |
<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/dateadd“>DATE_ADD</a> ( <date_or_time_part>, <value>, <date_or_time_expr> )</p><p></p><p><em>Anmerkungen: Ungültige Datumsteilformate werden in Snowflake-kompatible Formate übersetzt.</em></p> |
<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> |
|
<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/date_part“>DATE_PART</a> </p><p></p><p><em>Anmerkungen: Diese Funktion wird teilweise von Snowflake unterstützt. (Siehe</em> <a href=“../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0006“><em>SSC-EWI-OOO6</em></a><em>).</em></p> |
|
DATE_PART_YEAR (date) |
<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/year“>YEAR</a> ( <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> |
<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() |
<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> |
|
<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() |
|
<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-Zeitstempel werden standardmäßig mit Mikrosekundengenauigkeit (6 Stellen) angezeigt; Snowflake verwendet standardmäßig eine Nanosekundengenauigkeit (9 Stellen). Passen Sie die Genauigkeit nach Bedarf mit ALTER SESSION an (z. B. ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF2';). Je nach verwendetem Datentyp kann ein Genauigkeitsverlust auftreten.\ \ Da einige Formate nicht mit Snowflake kompatibel sind, kann durch eine Anpassung der Kontoparameter DATE_INPUT_FORMAT oder TIME_INPUT_FORMAT die funktionale Äquivalenz zwischen den Plattformen beibehalten werden.
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 |
|---|---|
<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¶
Redshift |
Snowflake |
|---|---|
DLOG10 (number) |
LOG (10, number) |
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 |
|---|---|
<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> |
|
<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, ‚“‘) |
<p><a href=“https://docs.snowflake.com/en/sql-reference/functions/regexp_replace“>REGEXP_REPLACE</a> </p><p></p><p><em>Anmerkungen: Diese Funktion beinhaltet ein <code>parameters</code>-Argument, das es Benutzenden ermöglicht, das Muster mit dem Perl Compatible Regular Expression(PCRE)-Dialekt zu interpretieren, dargestellt durch den <code>p</code>-Wert; dieser wird entfernt, um Probleme zu vermeiden</em>. <em>(Siehe</em> <a href=“../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0009“><em>SSC-EWI-0009</em></a><em>,</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/general/ssc-fdm-0032.md“><em>SC-FDM-0032</em></a><em>,</em> <a href=“../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0011.md“><em>SSC-FDM- PG0011</em></a><em>).</em></p> |
|
<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> |
|
<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> ) |
<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> |
|
<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> |
|
Informationsfunktionen für SUPER-Typ¶
Redshift |
Snowflake |
|---|---|
<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> |
|
<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 |
|---|---|
<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> |
|
<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> |
|
<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 <expr>.</code></em></p> |
|
<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 <expr></code>.</em></p> |
|
<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> |
|
<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> |
|
<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> |
|
<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> |
|
<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> |
|
<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> |
|
<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> |
|
<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> |
|
<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 |
|
VARIANCE |
Bekannte Probleme ¶
Weitere Informationen zu Bezeichnern in Anführungszeichen in Funktionen finden Sie hier.
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.
Weitere Informationen über zitierte Bezeichner in Funktionen finden Sie unter hier.
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 |
|---|---|
|
|
|
|
|
|
|
Direkt unterstützt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<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> |
|
|
|
|
|
Direkt unterstützt |
|
|
|
Direkt unterstützt |
|
Direkt unterstützt |
|
Direkt unterstützt |
|
|
|
|
|
|
|
|
|
<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> |
|
<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> |
|
|
|
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. |
|
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¶
SSC-EWI-0006: Das aktuelle Datumsformat/numerische Format weist in Snowflake möglicherweise ein anderes Verhalten auf.
[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