SnowConvert AI - RedShift - Funções internas

Nota

Para mais informações sobre funções internas e seus equivalentes no Snowflake, consulte também [Funções internas comuns](../general/ built-in-functions.md).

Funções de agregação

Funções de agregação calculam um único valor de resultado a partir de um conjunto de valores de entrada. (Funções agregadas da referência da linguagem RedShift SQL).

Redshift

Snowflake

ANY_VALUE ( [ DISTINCT

ALL ])

AVG ( [ DISTINCT | ALL ] expression )

<p><a href=»https://docs.snowflake.com/en/sql-reference/functions/avg»>AVG</a> (expressão [ DISTINCT ])</p><p></p><p><em>Observações: RedShift e Snowflake podem mostrar precisão/decimais diferentes devido a arredondamento/formatação do tipo de dados.</em></p>

COUNT

COUNT

LISTAGG

<p><a href=»https://docs.snowflake.com/en/sql-reference/functions/listagg»>LISTAGG</a> </p><p></p><p><em>Observações: O DISTINCT do RedShift ignora espaços finais (“a “ = “a”); o do Snowflake não. (Consulte</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>Observações<strong>: O Snowflake não permite o uso de tipos de data</strong>, o RedShift permite. (Consulte</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

<p><a href=»https://docs.aws.amazon.com/redshift/latest/dg/r_STDDEV_functions.html»>STDDEV/STDDEV_SAMP</a> (expressão [ DISTINCT

ALL ] )

STDDEV_POP ( [ DISTINCT

SUM

SUM

<p><a href=»https://docs.aws.amazon.com/redshift/latest/dg/r_VARIANCE_functions.html»>VARIANCE/VAR_SAMP</a> (expressão [ DISTINCT

ALL ] )

VAR_POP ( [ DISTINCT

Funções de matriz

Cria uma matriz do tipo de dados SUPER. (Funções de matriz de referência da linguagem RedShift SQL).

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>Observações: os resultados podem variar entre plataformas (consulte</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>Notes: O RedShift permite delimitadores ausentes; o Snowflake os exige, assumindo a vírgula como padrão</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>Observações: Os nomes das funções e o segundo argumento são diferentes; ajuste os argumentos para a equivalência.</em></p>

Expressões condicionais

Redshift

Snowflake

DECODE

<p><a href=»https://docs.snowflake.com/en/sql-reference/functions/decode»>DECODE</a> </p><p></p><p><em>Observações:</em> <em>os resultados podem variar entre plataformas (consulte</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>( expressão, expressão )</em></p><p></p><p><em>Observação: O NVL do RedShift aceita vários argumentos; o NVL do Snowflake aceita apenas dois. Para corresponder ao comportamento do RedShift, o NVL com mais de dois argumentos é convertido em COALESCE.</em></p>

NVL2

NVL2

NULLIF

<p><a href=»https://docs.snowflake.com/en/sql-reference/functions/nullif»>NULLIF</a> </p><p></p><p><em>Observações: O NULLIF do RedShift ignora espaços finais em algumas comparações de cadeias de caracteres, ao contrário do Snowflake. Portanto, a transformação adiciona RTRIM para equivalência.</em></p>

Funções de formatação de tipo de dados

As funções de formatação de tipo de dados fornecem uma maneira fácil de converter valores de um tipo de dados em outro. Para cada uma dessas funções, o primeiro argumento é sempre o valor a ser formatado e o segundo argumento contém o modelo do novo formato. (Funções de formatação de tipo de dados da referência da linguagem RedShift SQL).

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>Observações: A compatibilidade do Snowflake com esta função é parcial (consulte</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>Observações: O <code>TO_DATE</code> do Snowflake falha em datas inválidas como “20010631” (junho tem 30 dias), ao contrário do flexível <code>TO_DATE</code> do RedShift. Use <code>TRY_TO_DATE</code> no Snowflake para tratar esses casos, retornando NULL. (Consulte</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>

Funções de data e hora

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>Observações:</em> <em>os resultados podem variar entre plataformas (consulte</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>Observações: O padrão do RedShift é UTC; a função do Snowflake requer a especificação explícita de UTC. Portanto, ela será adicionada como o fuso horário de destino.</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>Observações: Os formatos das partes de data inválidas são traduzidos para formatos compatíveis com o Snowflake.</em></p>

DATEDIFF/DATE_DIFF

<p><a href=»https://docs.snowflake.com/en/sql-reference/functions/datediff»>DATEDIFF</a> </p><p></p><p><em>Observações: Os formatos das partes de data inválidas são traduzidos para formatos compatíveis com o Snowflake.</em></p>

DATE_PART/PGDATE_PART

<p><a href=»https://docs.snowflake.com/en/sql-reference/functions/date_part»>DATE_PART</a> </p><p></p><p><em>Observações: esta função é parcialmente compatível com o Snowflake. (Consulte</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> ( &#x3C;date_or_timestamp_expr> ) </p><p></p><p><em>Observações:</em> <em>os resultados podem variar entre plataformas (consulte </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>Observações: Os formatos das partes de data inválidas são traduzidos para formatos compatíveis com o Snowflake.</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>Observações:</em> <em>os resultados podem variar entre plataformas (consulte</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>Observações:</em> <em>os resultados podem variar entre plataformas (consulte</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>Observações:</em> compatibilidade com tempo parcial ou data/hora: DAY, DOW, DOY, EPOCH, HOUR, MINUTE, MONTH, QUARTER, SECOND, WEEK, YEAR. </p>

Nota

O padrão dos carimbos de data/hora do RedShift é a precisão de microssegundos (6 dígitos); o Snowflake usa como padrão a precisão de nanossegundos (9 dígitos). Ajuste a precisão conforme necessário usando ALTER SESSION (por exemplo, ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF2‘;). Pode ocorrer perda de precisão dependendo do tipo de dados utilizado.\ \ Como alguns formatos são incompatíveis com o Snowflake, ajustar os parâmetros da conta DATE_INPUT_FORMAT ou TIME_INPUT_FORMAT pode manter a equivalência funcional entre plataformas.

Funções de hash

Uma função hash é uma função matemática que converte um valor de entrada numérica em outro valor. (Funções hash da referência da linguagem RedShift SQL).

Redshift

Snowflake

FNV_HASH (value [, seed])

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

Funções JSON

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>Observações:</em> </p><ol><li><em>O RedShift trata os caracteres de nova linha, tabulação e retorno de carro literalmente; o Snowflake os interpreta.</em></li><li><em>Um literal JSON e o caminho separado por ponto são necessários para acessar os objetos aninhados na função do Snowflake.</em></li><li><em>Caminhos com espaços em variáveis devem ser colocados entre aspas.</em></li></ol>

Funções matemáticas

Redshift

Snowflake

ACOS

ACOS

ASIN

ASIN

ATAN

ATAN

ATAN2

ATAN2

CBRT

CBRT

CEIL/CEILING

CEIL

COS

COS

COT

COT

DEGREES

DEGREES

DEXP

EXP

DLOG1/LN

LN

DLOG10 (number)

LOG (10, number)

EXP

EXP

FLOOR

FLOOR

LOG

LOG

MOD

MOD

PI

PI

POWER/POW

POWER/POW

RADIANS

RADIANS

RANDOM

RANDOM

ROUND

ROUND

SIN

SIN

SIGN

SIGN

SQRT

SQRT

TAN

TAN

TRUNC

TRUNC

Nota

Os resultados do RedShift e do Snowflake podem diferir em escala.

Funções de cadeia de caracteres

As funções de cadeia de caracteres processam e manipulam cadeias de caracteres ou expressões que são avaliadas como cadeias de caracteres. (Funções de cadeia de caracteres da referência da linguagem RedShift SQL).

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>Observações: Para comprimentos negativos em <code>LEFT</code>/<code>RIGHT</code>, o Snowflake retorna uma cadeia de caracteres vazia; o RedShift gera um erro.</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>Observações:</em> <em>os resultados podem variar entre plataformas (consulte</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

<p><a href=»https://docs.snowflake.com/en/sql-reference/functions/regexp_replace»>REGEXP_REPLACE</a> </p><p></p><p><em>Observações: Esta função inclui um argumento <code>parameters</code> que permite ao usuário interpretar o padrão usando o dialeto de expressão regular compatível com Perl (PCRE), representado pelo valor <code>p</code>. Isto é removido para evitar qualquer problema</em>. <em>(Consulte</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>

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>Observações: Certos caracteres especiais, os resultados podem variar entre plataformas (consulte</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>Observações: O Snowflake e o RedShift tratam SPLIT_PART de forma diferente com agrupamentos que não diferenciam maiúsculas de minúsculas.</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>Observações:</em> o Snowflake é parcialmente compatível com esta função. O <code>SUBSTRING</code> do RedShift, com um <code>start_position</code> não positivo, calcula <code>start_position + number_characters</code> (retornando « se o resultado for não positivo). O comportamento do Snowflake é diferente. (Consulte <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>Observações: o RedShift usa palavras-chave (BOTH, LEADING, TRAILING) para corte; o Snowflake usa TRIM, LTRIM, RTRIM.</em></p>

UPPER

UPPER

Funções de informação de tipo SUPER

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>Observações:</em> <em>os resultados podem variar entre plataformas (consulte</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>Observações:</em> <em>os resultados podem variar entre plataformas (consulte</em> <a href=»../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md»>SSC-FDM-PG0013</a><em>).</em></p>

Funções de janela

Redshift

Snowflake

AVG

<p><a href=»https://docs.snowflake.com/en/sql-reference/functions/avg»><em>AVG</em></a> </p><p></p><p><em>Observações: o arredondamento/formatação do AVG pode variar de acordo com o tipo de dados entre o RedShift e o Snowflake.</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>Observações: ORDER BY é obrigatório no Snowflake; as cláusulas ausentes são substituídas por <code>ORDER BY 1</code>.</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>Observações: O Snowflake precisa de ORDER BY; as cláusulas ausentes obtêm <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>Observações: O Snowflake precisa de ORDER BY; as cláusulas ausentes obtêm <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>Observações: O RedShift permite offsets constantes ou de expressão; o Snowflake permite apenas offsets constante</em>s.</p>

LISTAGG

<p><a href=»https://docs.snowflake.com/en/sql-reference/functions/listagg»>LISTAGG</a> </p><p></p><p><em>Observações: O DISTINCT do RedShift ignora espaços finais (“a “ = “a”); o do Snowflake não. (Consulte</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>Observações<strong>: O Snowflake não permite o uso de tipos de data</strong>, o RedShift permite. (Consulte</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>Observações: ORDER BY é obrigatório no Snowflake; as cláusulas ausentes são substituídas por <code>ORDER BY 1</code>.</em></p>

NTILE

<p><a href=»https://docs.snowflake.com/en/sql-reference/functions/ntile»>NTILE</a> </p><p></p><p><em>Observações: ORDER BY é obrigatório no Snowflake; as cláusulas ausentes são substituídas por <code>ORDER BY 1</code>. (Consulte</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>Observações: ORDER BY é obrigatório no Snowflake; as cláusulas ausentes são substituídas por <code>ORDER BY 1</code>.</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>Observações: O arredondamento varia entre plataformas.</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>Observações:</em> <em>os resultados podem variar entre plataformas (consulte</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>O<em>bservações: ORDER BY é obrigatório no Snowflake; as cláusulas ausentes são substituídas por <code>ORDER BY 1</code>.</em></p>

STDDEV_SAMP

STDDEV

VAR_SAMP

VARIANCE

Problemas conhecidos

  1. Para obter mais informações sobre identificadores entre aspas em funções, clique aqui.

IDENTITY

Descrição

A função IDENTITY é uma função do sistema que opera em uma coluna específica de uma tabela para determinar o valor inicial da identidade. Se o valor inicial não estiver disponível, o padrão será o valor fornecido na função. Isso será convertido em uma Sequência no Snowflake.

Sintaxe da gramática

 "identity"(oid_id, oid_table_id, default)
Copy

Nota

Essa função não é mais compatível com o Redshift. Ela usa o valor padrão para definir a identidade e se comporta como uma coluna de identidade padrão.

Amostra de padrões da origem

Código de entrada:

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;
Copy
Resultados

id

inventory_combo

1

5

2

8

3

11

3

14

Código de saída:

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;
Copy
Resultados

id

inventory_combo

1

5

2

8

3

11

3

14

EWIs relacionados

Não há problemas conhecidos.

TO_CHAR

Função de data

Descrição

TO_CHAR converte um carimbo de data/hora ou uma expressão numérica em um formato de dados de cadeia de caracteres. (Função TO_CHAR de referência da linguagem Redshift SQL)

Aviso

Essa função é parcialmente suportada no Snowflake.

Para obter mais informações sobre identificadores entre aspas em funções, clique aqui.

Sintaxe da gramática

 TO_CHAR(timestamp_expression | numeric_expression , 'format')
Copy

Amostra de padrões da origem

Código de entrada:

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');
Copy
Resultados

TO_CHAR

TO_CHAR

TO_CHAR

TO_CHAR

TO_CHAR

2009

009

DEC-THU-31-2009 11:15PM

125,80

125,80

Código de saída:

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');
Copy
Resultados

TO_CHAR

TO_CHAR

2009

Dec-Thu-31-2009 11:15PM

Problemas conhecidos

Não foram encontrados problemas.

EWIs relacionados

  • SSC-EWI-0006: O formato de data/numérico atual pode ter um comportamento diferente no Snowflake.

Para valores de data e hora

Especificação de tradução para a função TO_CHAR ao transformar valores de data ou carimbo de data/hora em cadeia de caracteres

Descrição

As cadeias de formato a seguir se aplicam a funções como TO_CHAR. Essas cadeias de caracteres podem conter separadores de data e hora (como “-”, “/ ou “:”) e os seguintes «dateparts» e «timeparts». (Página de referência das cadeias de caracteres de formato Datetime do Redshift)

Sintaxe da gramática

TO_CHAR (timestamp_expression, 'format')

Copy

A tabela a seguir especifica o mapeamento de cada elemento de formato para o Snowflake:

Redshift

Snowflake

BC, AD, bc, ad (indicadores de era em maiúsculas e minúsculas)

PUBLIC.ERA_INDICATORS_UDF

B.C.,. A.D., b.c., a.d. (indicadores de era maiúsculos e minúsculos com pontos)

PUBLIC.ERA_INDICATORS_WITH_POINTS_UDF

CC

PUBLIC.CENTURY_UDF

YYYY e YY

Com suporte direto

YYY e 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>Observações: para esta UDF funcionar corretamente, o parâmetro de sessão do Snowflake <code>WEEK_START</code> deve ter seu valor padrão (<code>0</code>).</em></p>

ID

DAYOFWEEKISO

J

PUBLIC.JULIAN_DAY_UDF

HH24

Com suporte direto

HH

HH12

HH12

Com suporte direto

MI

Com suporte direto

SS

Com suporte direto

MS

FF3

US

FF6

AM, PM, am, pm (indicadores de meridianos em letras maiúsculas e minúsculas)

PUBLIC.MERIDIAN_INDICATORS_UDF

A.M., P.M., a.m., p.m. (indicadores de meridianos maiúsculos e minúsculos com pontos)

PUBLIC.MERIDIAN_INDICATORS_WITH_POINTS_UDF

TZ e tz

<p><code>UTC</code> e <code>utc</code> </p><p></p><p><em>Observações: de acordo com a</em> <a href=»https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz»><em>documentação do RedShift</em></a><em>, todos os carimbos de data/hora com fuso horário são armazenados em UTC, o que faz com que esse elemento de formato retorne um resultado fixo.</em></p>

OF

<p>+00 </p><p></p><p><em>Observações: de acordo com a</em> <a href=»https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz»><em>documentação do RedShift</em></a><em>, todos os carimbos de data/hora com fuso horário são armazenados em UTC, o que faz com que esse elemento de formato retorne um resultado fixo.</em></p>

SSSS

PUBLIC.SECONDS_PAST_MIDNIGHT

SP

Observações: este é um modificador de padrão de modelo PostgreSQL para «modo ortográfico»; no entanto, como ele não faz nada no RedShift, é removido da saída.

FX

Observações: este é outro modificador de padrão de modelo para «formato fixo»; porém, por não ser usado na função TO_CHAR, ele é removido.

Amostra de padrões da origem

Transformação direta de elementos de formato (sem funções/UDFs)

O resultado é preservado como uma única função TO_CHAR

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

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

Copy

Transformação de formato usando funções/UDFs

O resultado é uma concatenação de várias funções internas TO_CHAR, UDFs e Snowflake que geram a representação de cadeia de caracteres equivalente do valor datetime

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

Copy
Snowflake
Consulta
 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;
Copy
Resultado
+-------------------------------------------------------------+
|result                                                       |
+-------------------------------------------------------------+
|Today is  July      SATURDAY  05, it belongs to the week  27 |
+-------------------------------------------------------------+

Copy

Texto citado

Os elementos de formato no texto entre aspas duplas são adicionados à saída diretamente sem interpretá-los; as aspas duplas com escape são transformadas em seu equivalente com escape no Snowflake.

Redshift
Consulta
 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;
Copy
Resultado
+-----------------+-------------------+-------------------+
|result1          |result2            |result3            |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+

Copy
Snowflake
Consulta
 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;
Copy
Resultado
+-----------------+-------------------+-------------------+
|result1          |result2            |result3            |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+

Copy

Problemas conhecidos

Modificadores de padrão de modelo não suportados

Os seguintes modificadores de modelo de formato:

  • FM (modo de preenchimento)

  • TH e th (sufixo de número ordinal em maiúsculas e minúsculas)

  • TM (modo de conversão)

Não são compatíveis, inclui-los em um formato vai gerar SSC-EWI-0006

Código de entrada:

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

Código de saída:

 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. ***/!!!;
Copy

Parâmetro de formato passado pela variável

Quando o parâmetro de formato é passado como uma variável em vez de um literal de cadeia de caracteres, a transformação de elementos de formato não pode ser aplicada; um FDM será adicionado aos usos da função alertando sobre isso.

Código de entrada:

 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);
Copy

Código de saída:

 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);
Copy

EWIs relacionados

  1. SSC-EWI-0006: O formato de data/numérico atual pode ter um comportamento diferente no Snowflake.

  2. SSC-FDM-0032: O parâmetro não é um valor literal, a transformação não pôde ser totalmente aplicada