SnowConvert AI - Redshift - Fonctions intégrées¶
Note
Pour plus d’informations sur les fonctions intégrées et leurs équivalents Snowflake, consultez également les fonctions intégrées courantes.
Fonctions d’agrégation¶
Les fonctions d’agrégation calculent une seule valeur de résultat à partir d’un ensemble de valeurs d’entrée. (Fonctions d’agrégation de référence de langage Redshift SQL).
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> (expression [ DISTINCT ] )</p><p></p><p><em>Remarques : Redshift et Snowflake peuvent afficher des précisions/décimales différentes en raison de l’arrondi/du formatage des types de données.</em></p> |
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/listagg »>LISTAGG</a> </p><p></p><p><em>Remarques : DISTINCT de Redshift ignore les espaces de fin (“a “ = “a”) ; Pas Snowflake. (Voir</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>Remarques<strong> : Snowflake n’autorise pas l’utilisation de types de date</strong>, alors que Redshift oui. (Voir</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.aws.amazon.com/redshift/latest/dg/r_STDDEV_functions.html »>STDDEV/STDDEV_SAMP</a> (expression [ DISTINCT |
ALL ] ) STDDEV_POP ( [ DISTINCT |
<p><a href= »https://docs.aws.amazon.com/redshift/latest/dg/r_VARIANCE_functions.html »>VARIANCE/VAR_SAMP</a> (expression [ DISTINCT |
ALL ] ) VAR_POP ( [ DISTINCT |
Fonctions de tableau¶
Crée un tableau de type de données SUPER. (Fonctions de tableau de référence du langage Redshift SQL).
Redshift |
Snowflake |
|---|---|
ARRAY ( [ expr1 ] [ , expr2 [ , … ] ] ) |
( [ <expr1> ] [ , <expr2> [ , … ] ] ) |
ARRAY_CONCAT ( super_expr1, super_expr2 ) |
ARRAY_CAT ( <array1> , <array2> ) |
<p><a href= »https://docs.aws.amazon.com/redshift/latest/dg/array_flatten.html »>ARRAY_FLATTEN</a></p><p> ( <em>expr_super1</em>,<em>expr_super2</em>,.. )</p> |
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/array_flatten »>ARRAY_FLATTEN</a> ( <array> ) </p><p></p><p><em>Remarques : les résultats peuvent varier entre les plateformes (Voir</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>Remarques : Redshift autorise les délimiteurs manquants ; Snowflake les exige, la valeur par défaut étant la virgule</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>Remarques : Les noms de la fonction et le deuxième argument diffèrent ; ajustez les arguments pour qu’ils soient comparables.</em></p> |
Expressions conditionnelles¶
Redshift |
Snowflake |
|---|---|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/decode »>DECODE</a> </p><p></p><p><em>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques : NVL de Redshift accepte plusieurs arguments ; NVL de Snowflake n’en accepte que deux. Pour faire correspondre le comportement Redshift, NVL avec plus de deux arguments est converti en COALESCE.</em></p> |
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/nullif »>NULLIF</a> </p><p></p><p><em>Remarques : NULLIF de Redshift ignore les espaces de fin dans certaines comparaisons de chaînes, contrairement à Snowflake. Par conséquent, la transformation ajoute RTRIM pour l’équivalence.</em></p> |
Fonctions de formatage de types de données¶
Les fonctions de formatage de type de données offrent un moyen simple de convertir des valeurs d’un type de données à un autre. Pour chacune de ces fonctions, le premier argument est toujours la valeur à formater et le deuxième argument contient le modèle pour le nouveau format. (Fonctions de formatage de type de données de référence de langage Redshift SQL).
Redshift |
Snowflake |
|---|---|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/to_char »>TO_CHAR</a> </p><p></p><p><em>Remarques : La prise en charge de cette fonction par Snowflake est partielle (voir</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>Remarques : <code>TO_DATE</code> de Snowflake échoue pour des dates non valides comme “20010631” (juin compte 30 jours), contrairement au <code>TO_DATE</code> flexible de Redshift. Utilisez <code>TRY_TO_DATE</code> dans Snowflake pour traiter ces cas en renvoyant NULL. (voir</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> |
Fonctions de date et d’heure¶
Redshift |
Snowflake |
|---|---|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/add_months »>ADD_MONTHS</a> </p><p></p><p><em>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques : Redshift utilise UTC par défaut ; la fonction Snowflake requiert une spécification UTC explicite. Par conséquent, il sera ajouté comme fuseau horaire cible.</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>Remarques : Les formats de parties de date non valides sont traduits en formats compatibles avec Snowflake.</em></p> |
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/datediff »>DATEDIFF</a> </p><p></p><p><em>Remarques : Les formats de parties de date non valides sont traduits en formats compatibles avec Snowflake.</em></p> |
|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/date_part »>DATE_PART</a> </p><p></p><p><em>Notes : cette fonction est partiellement prise en charge par Snowflake. (Voir </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>Remarques :</em> <em>les résultats peuvent varier entre les plateformes (Voir</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>Remarques : Les formats de parties de date non valides sont traduits en formats compatibles avec Snowflake.</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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques :</em> Partie de temps ou date prise en charge : DAY, DOW, DOY, EPOCH, HOUR, MINUTE, MONTH, QUARTER, SECOND, WEEK, YEAR. </p> |
Note
Les horodatages Redshift ont une précision de microseconde par défaut (6 chiffres) ; Snowflake utilise par défaut une précision en nanosecondes (9 chiffres). Ajustez la précision selon vos besoins à l’aide de ALTER SESSION (par ex., ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF2';). Une perte de précision peut se produire en fonction du type de données utilisé.\ \ Comme certains formats sont incompatibles avec Snowflake, le réglage des paramètres de compte [DATE_INPUT_FORMAT ou TIME_INPUT_FORMAT](https://docs.snowflake.com/en/sql-reference/date-time-input-output#data-loading pourrait maintenir l’équivalence fonctionnelle entre les plateformes.
Fonctions de hachage¶
Une fonction de hachage est une fonction mathématique qui convertit une valeur numérique d’entrée en une autre valeur. (Les fonctions de hachage de référence du langage Redshift SQL).
Redshift |
Snowflake |
|---|---|
FNV_HASH (value [, seed]) |
HASH ( <expr> [ , <expr> … ] |
Fonctions JSON¶
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>Remarques :</em> </p><ol><li><em>Redshift traite les caractères de nouvelle ligne, de tabulation et de retour chariot littéralement ; Snowflake les interprète.</em></li><li><em>Un littéral JSON et un chemin séparés par des points sont nécessaires pour accéder aux objets imbriqués dans la fonction Snowflake.</em></li><li><em>Les chemins avec des espaces dans les variables doivent être entre guillemets.</em></li></ol> |
Fonctions mathématiques¶
Redshift |
Snowflake |
|---|---|
DLOG10 (number) |
LOG (10, number) |
Note
L’échelle des résultats Redshift et Snowflake peut varier.
Fonctions de chaîne¶
Les fonctions de chaîne traitent et manipulent les chaînes de caractères ou les expressions qui correspondent à des chaînes de caractères. (Fonctions de chaîne de référence du langage Redshift SQL).
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>Remarques : Pour les longueurs négatives en <code>LEFT</code>/<code>RIGHT</code>, Snowflake renvoie une chaîne vide ; Redshift signale une erreur.</em></p> |
|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/octet_length »>OCTET_LENGTH</a> </p><p></p><p><em>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques : Cette fonction comprend un argument <code>paramètres</code> qui permet à l’utilisateur d’interpréter le modèle en utilisant l’expression régulière compatible avec le dialecte Expression régulière compatible Perl (PCRE), représenté par la valeur <code>p</code> ; cette valeur est supprimée pour éviter tout problème</em>. <em>(Voir</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>Remarques : Certains caractères spéciaux, les résultats peuvent varier d’une plateforme à l’autre (Voir</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>Remarques : Snowflake et Redshift traitent SPLIT_PART différemment avec les classements insensibles à la casse.</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>Remarques :</em> Snowflake prend en charge partiellement cette fonction. <code>SUBSTRING</code> de Redshift, avec un <code>start_position</code> non positif, calcule <code>start_position + number_characters</code> (renvoyant “” si le résultat est non positif). Le comportement de Snowflake diffère. (Voir <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>Remarques : Redshift utilise des mots-clés (BOTH, LEADING, TRAILING) pour le rognage ; Snowflake utilise TRIM, LTRIM, RTRIM.</em></p> |
|
Fonctions d’informations de type SUPER¶
Redshift |
Snowflake |
|---|---|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/is_array »>IS_ARRAY</a> </p><p></p><p><em>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</em> <a href= »../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md »>SSC-FDM-PG0013</a><em>).</em></p> |
Fonctions de fenêtre¶
Redshift |
Snowflake |
|---|---|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/avg »><em>AVG</em></a> </p><p></p><p><em>Remarques : L’arrondi/le formatage AVG peut varier selon le type de données entre Redshift et Snowflake.</em></p> |
|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/dense_rank »>DENSE_RANK</a> </p><p></p><p><em>Remarques : ORDER BY est obligatoire dans Snowflake ; les clauses manquantes sont remplacées par <code>ORDER BY 1</code>.</em></p> |
|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/first_value »>FIRST_VALUE</a> </p><p></p><p><em>Remarques : Snowflake a besoin de ORDER BY ; les clauses manquantes obtiennent <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>Remarques : Snowflake a besoin de ORDER BY ; les clauses manquantes obtiennent <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>Remarques : Redshift permet les décalages de constantes ou d’expressions ; Snowflake autorise uniquement les décalages de constante</em>.</p> |
|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/listagg »>LISTAGG</a> </p><p></p><p><em>Remarques : DISTINCT de Redshift ignore les espaces de fin (“a “ = “a”) ; Pas Snowflake. (Voir</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>Remarques<strong> : Snowflake n’autorise pas l’utilisation de types de date</strong>, alors que Redshift oui. (Voir</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>Remarques : ORDER BY est obligatoire dans Snowflake ; les clauses manquantes sont remplacées par <code>ORDER BY 1</code>.</em></p> |
|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/ntile »>NTILE</a> </p><p></p><p><em>Remarques : ORDER BY est obligatoire dans Snowflake ; les clauses manquantes sont remplacées par <code>ORDER BY 1</code>. (Voir</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>Remarques : ORDER BY est obligatoire dans Snowflake ; les clauses manquantes sont remplacées par <code>ORDER BY 1</code>.</em></p> |
|
<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/percentile_cont »>PERCENTILE_CONT</a> </p><p></p><p><em>Remarques : L’arrondi varie selon les plateformes.</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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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><em>Remarques : ORDER BY est obligatoire dans Snowflake ; les clauses manquantes sont remplacées par <code>ORDER BY 1</code>.</em></p> |
|
STDDEV |
|
VARIANCE |
Problèmes connus ¶
Pour plus d’informations sur les identificateurs entre guillemets dans les fonctions, cliquez ici.
IDENTITY¶
Description ¶
La fonction IDENTITY est une fonction de système qui opère sur une colonne spécifiée d’une table pour déterminer la valeur initiale de l’identité. Si la valeur initiale n’est pas disponible, elle prend par défaut la valeur fournie dans la fonction. Ceci sera traduit en séquence dans Snowflake.
Grammar Syntax ¶
"identity"(oid_id, oid_table_id, default)
Note
Cette fonction n’est plus prise en charge dans Redshift. Elle utilise la valeur par défaut pour définir l’identité et se comporte comme une colonne d’identité standard.
Modèles d’échantillons de sources¶
Code d’entrée :¶
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;
Résultats¶
id |
inventory_combo |
|---|---|
1 |
5 |
2 |
8 |
3 |
11 |
3 |
14 |
Code de sortie :
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;
Résultats¶
id |
inventory_combo |
|---|---|
1 |
5 |
2 |
8 |
3 |
11 |
3 |
14 |
EWIs connexes¶
Il n’y a pas de problème connu.
TO_CHAR¶
Fonction de date
Description¶
TO\CHAR convertit un horodatage ou une expression numérique en format de données de type chaîne de caractères. (Référence linguistique Redshift SQL fonction TO_CHAR fonction)
Avertissement
Cette fonction est partiellement prise en charge par Snowflake.
Pour plus d’informations sur les identificateurs cités dans les fonctions, cliquez ici.
Grammar Syntax¶
TO_CHAR(timestamp_expression | numeric_expression , 'format')
Modèles d’échantillons de sources¶
Code d’entrée :¶
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');
Résultats¶
TO_CHAR |
TO_CHAR |
TO_CHAR |
TO_CHAR |
TO_CHAR |
|---|---|---|---|---|
2009 |
009 |
DEC-THU-31-2009 11:15PM |
125,80 |
125,80 |
Code de sortie :¶
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');
Résultats¶
TO_CHAR |
TO_CHAR |
|---|---|
2009 |
Déc-Jeu-31-2009 11 :15PM |
Problèmes connus ¶
Aucun problème n’a été constaté.
EWIs connexes¶
SSC-EWI-0006 : le format de date/numérique actuel peut avoir un comportement différent dans Snowflake.
Pour les valeurs temporelles¶
Spécification de traduction pour la fonction TO_CHAR lors de la transformation de valeurs de date ou d’horodatage en chaîne
Description¶
Les chaînes de format suivantes s’appliquent à des fonctions telles que TO_CHAR. Ces chaînes peuvent contenir des séparateurs de date (tels que “
-”, “/” ou “:”) ainsi que les « dateparts » et « timeparts » suivants. (Page de référence des chaînes de format datetime de Redshift)
Grammar Syntax¶
TO_CHAR (timestamp_expression, 'format')
La table suivante spécifie le mappage de chaque élément de format à Snowflake :
Redshift |
Snowflake |
|---|---|
|
|
|
|
|
|
|
Pris en charge directement |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p><code>PUBLIC.DAY_OF_WEEK_UDF</code> </p><p></p><p><em>Remarques : pour que ce UDF fonctionne correctement le paramètre de session Snowflake <code>WEEK_START</code> devrait avoir sa valeur par défaut (<code>0</code>).</em></p> |
|
|
|
|
|
Pris en charge directement |
|
|
|
Pris en charge directement |
|
Pris en charge directement |
|
Pris en charge directement |
|
|
|
|
|
|
|
|
|
<p><code>UTC</code> et <code>utc</code> </p><p></p><p><em>Remarques : conformément à la documentation Redshift </em> <a href= »https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz »><em></em></a><em>, tous les horodatages avec fuseau horaire sont stockés dans UTC, ce qui fait que cet élément de format renvoie un résultat fixe.</em></p> |
|
<p>+00 </p><p></p><p><em>Remarques : conformément à la documentation Redshift </em> <a href= »https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz »><em></em></a><em>, tous les horodatages avec fuseau horaire sont stockés dans UTC, ce qui fait que cet élément de format renvoie un résultat fixe.</em></p> |
|
|
|
Remarques : il s’agit d’un exemple de modificateur de modèle PostgreSQL pour le « mode orthographe », cependant il ne fait rien sur Redshift, il est donc supprimé de la sortie. |
|
Remarques : ceci est un autre exemple de modificateur de modèle pour le « format fixe », cependant il n’a pas d’utilité sur la fonction TO_CHAR et est, par conséquent, supprimé. |
Modèles d’échantillons de sources¶
Transformation directe des éléments de format (pas de fonctions/UDFs)¶
Le résultat est conservé sous la forme d’une fonction unique TO_CHAR
Redshift¶
Requête¶
SELECT TO_CHAR('2013-10-03 13:50:15.456871'::TIMESTAMP, 'DD/MM/YY HH:MI:SS.MS') AS col1;
Résultat¶
+----------------------+
|col1 |
+----------------------+
|03/10/13 01:50:15.456 |
+----------------------+
Snowflake¶
Requête¶
SELECT TO_CHAR('2013-10-03 13:50:15.456871'::TIMESTAMP, 'DD/MM/YY HH12:MI:SS.FF3') AS col1;
Résultat¶
+----------------------+
|col1 |
+----------------------+
|03/10/13 01:50:15.456 |
+----------------------+
Transformation de format à l’aide de fonctions/UDFs¶
Le résultat est une concaténation de plusieurs fonctions intégrées TOCHAR, UDFs et Snowflake qui génèrent la représentation équivalente sous forme de chaîne de la valeur de l’heure de la date
Redshift¶
Requête¶
SELECT TO_CHAR(DATE '2025-07-05', '"Today is " Month DAY DD, "it belongs to the week " IW') AS result;
Résultat¶
+-------------------------------------------------------------+
|result |
+-------------------------------------------------------------+
|Today is July SATURDAY 05, it belongs to the week 27 |
+-------------------------------------------------------------+
Snowflake¶
Requête¶
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;
Résultat¶
+-------------------------------------------------------------+
|result |
+-------------------------------------------------------------+
|Today is July SATURDAY 05, it belongs to the week 27 |
+-------------------------------------------------------------+
Texte cité¶
Les éléments de format dans le texte entre guillemets doubles sont ajoutés à la sortie directement sans les interpréter, les guillemets doubles échappés sont transformés en leur équivalent échappé dans Snowflake.
Redshift¶
Requête¶
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;
Résultat¶
+-----------------+-------------------+-------------------+
|result1 |result2 |result3 |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+
Snowflake¶
Requête¶
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;
Résultat¶
+-----------------+-------------------+-------------------+
|result1 |result2 |result3 |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+
Problèmes connus¶
Les modificateurs de modèles ne sont pas pris en charge¶
Les modificateurs de modèles de format suivants :
FM (mode remplissage)
TH et th (suffixe du nombre ordinal en majuscules et minuscules)
TM (mode traduction)
Ne sont pas pris en charge, les inclure dans un format générera SSC-EWI-0006
Code d’entrée :
SELECT TO_CHAR(CURRENT_DATE, 'FMMonth'),
TO_CHAR(CURRENT_DATE, 'DDTH'),
TO_CHAR(CURRENT_DATE, 'DDth'),
TO_CHAR(CURRENT_DATE, 'TMMonth');
Code de sortie :
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. ***/!!!;
Paramètre du format transmis par la variable
Lorsque le paramètre du format est transmis comme une variable au lieu d’un littéral de chaîne, la transformation des éléments de format ne peut pas être appliquée, un avertissement FDM sera ajouté aux utilisations de la fonction à ce sujet.
Code d’entrée :
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);
Code de sortie :
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);
EWIs connexes¶
SSC-EWI-0006 : le format de date/numérique actuel peut avoir un comportement différent dans Snowflake.
[SSC-FDM-0032](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0032) : le paramètre n’est pas une valeur littérale, la transformation n’a pas pu être entièrement appliquée