SnowConvert: Referências de funções para Teradata

QUARTERNUMBER_OF_YEAR_UDF

Definição

UDF (função definida pelo usuário) que calcula o número do trimestre de uma determinada data de acordo com o ano civil ISO, semelhante à função QUARTERNUMBER_OF_YEAR_UDF(date, “ISO”) do Teradata.

PUBLIC.QUARTERNUMBER_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT HoraSTAMP_TZ

O método para extrair o número do trimestre.

Retornos

Um número inteiro (1-4) que indica em qual trimestre do ano a data se enquadra.

Exemplo de uso

Entrada:

SELECT PUBLIC.QUARTERNUMBER_OF_YEAR_UDF(DATE '2022-01-01'),
PUBLIC.QUARTERNUMBER_OF_YEAR_UDF(DATE '2025-12-31');
Copy

Saída:

4, 1
Copy

DAYNUMBER_OF_YEAR_UDF

Definição

Retorna o número do dia dentro do ano para um determinado carimbo de data/hora. O número do dia varia de 1 a 365 (ou 366 em anos bissextos). Essa função se comporta da mesma forma que DAYNUMBER_OF_YEAR(DATE, “ISO”).

PUBLIC.DAYNUMBER_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

Para obter o número do dia do ano a partir de uma data.

Retornos

Um número inteiro de 1 a 371.

Exemplo

Entrada:

SELECT DAYNUMBER_OF_YEAR(CURRENT_DATE,'ISO');
Copy

Saída:

SELECT
PUBLIC.DAYNUMBER_OF_YEAR_UDF(CURRENT_DATE());
Copy

SUBSTR_UDF (STRING, FLOAT)

Aviso

Essa função definida pelo usuário (UDF) aceita dois parâmetros (função sobrecarregada).

Definição

Recupera uma parte do texto de uma cadeia de caracteres especificada usando uma posição inicial e um comprimento.

PUBLIC.SUBSTR_UDF(BASE_EXPRESSION STRING, START_POSITION FLOAT)
Copy

Parâmetros

BASE_EXPRESSION é um parâmetro de cadeia de caracteres que define a expressão de base para a operação.

O texto de origem do qual você deseja extrair uma parte.

START_POSITION - Um número de ponto flutuante que especifica a posição inicial na cadeia de caracteres de entrada.

A posição em que você deseja começar a extrair caracteres da cadeia de caracteres.

Retornos

A subcadeia de caracteres que deve ser incluída.

Exemplo de migração

Entrada:

SELECT SUBSTRING('Hello World!' FROM -2);
Copy

Saída:

SELECT
PUBLIC.SUBSTR_UDF('Hello World!', -2);
Copy

CHKNUM_UDF

Definição

Verifica se uma cadeia de caracteres contém um valor numérico válido.

PUBLIC.CHKNUM_UDF(NUM STRING);
Copy

Parâmetros

NUM cadeia de caracteres que representa um número

A cadeia de cadeia de caracteres de texto que precisa ser validada.

Retornos

Retorna 1 se o parâmetro de entrada for um valor numérico válido. Se a entrada não for um número válido (por exemplo, texto ou caracteres especiais), você retornará 0.

Exemplo

SELECT CHKNUM('1032');
Copy

Saída:

SELECT
PUBLIC.CHKNUM_UDF('1032');
Copy

TD_YEAR_END_UDF

Definição

UDF (função definida pelo usuário) que replica a função TD_YEAR_END(DATE) ou TD_YEAR_END(DATE, “COMPATIBLE”) do Teradata, que retorna o último dia do ano para uma determinada data.

PUBLIC.TD_YEAR_END_UDF(INPUT date)
Copy

Parâmetros

INPUT DATE

Obtenha o último dia do ano atual.

Retornos

O último dia de dezembro (31 de dezembro).

Exemplo de uso

Entrada:

SELECT  PUBLIC.TD_YEAR_END_UDF(DATE '2022-01-01'),
PUBLIC.TD_YEAR_END_UDF(DATE '2022-04-12');
Copy

Saída:

2022-12-31, 2022-12-31
Copy

PERIOD_OVERLAPS_UDF

Definição

Uma função definida pelo usuário (UDF) que implementa a funcionalidade OVERLAPS OPERATOR. Essa função compara dois ou mais períodos de tempo e determina se eles têm intervalos de tempo sobrepostos.

PERIOD_OVERLAPS_UDF(PERIODS ARRAY)
Copy

Parâmetros

PERIODS é uma matriz que contém períodos de tempo

Todas as expressões de período que serão comparadas.

Retornos

TRUE se todos os períodos de tempo no conjunto tiverem pelo menos um ponto em comum (sobreposição), FALSE caso contrário.

Exemplo de migração

SELECT
	PERIOD(DATE '2009-01-01', DATE '2010-09-24')
	OVERLAPS
	PERIOD(DATE '2009-02-01', DATE '2009-06-24');
Copy

Saída:

SELECT
	PUBLIC.PERIOD_OVERLAPS_UDF(ARRAY_CONSTRUCT(PUBLIC.PERIOD_UDF(DATE '2009-01-01', DATE '2010-09-24') !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!, PUBLIC.PERIOD_UDF(DATE '2009-02-01', DATE '2009-06-24') !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!)) !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!;
Copy

WEEK_NUMBER_OF_QUARTER_COMPATIBLE_UDF

Definição

Calcula em qual número de semana do trimestre atual uma data especificada se enquadra.

PUBLIC.WEEK_NUMBER_OF_QUARTER_COMPATIBLE_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data usada para calcular em qual semana do trimestre ela se enquadra.

Retornos

Um número inteiro que indica em qual semana do trimestre a data cai (1-13).

Exemplo de uso

Entrada:

SELECT WEEK_NUMBER_OF_QUARTER_COMPATIBLE_UDF(DATE '2022-05-01', 'COMPATIBLE'),
WEEK_NUMBER_OF_QUARTER_COMPATIBLE_UDF(DATE '2022-07-06', 'COMPATIBLE')
Copy

Saída:

5, 1
Copy

ROMAN_NUMERALS_MONTH_UDF

Definição

Converte uma data em seu mês correspondente em algarismos romanos.

PUBLIC.ROMAN_NUMERALS_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data de entrada da qual será extraído o mês.

Retornos

Um varchar que representa o mês extraído de uma determinada data.

Exemplo de uso

Entrada:

SELECT PUBLIC.ROMAN_NUMERALS_MONTH_UDF(DATE '2021-10-26');
Copy

Saída:

'X'
Copy

TD_YEAR_BEGIN_UDF

Definição

Uma função definida pelo usuário (UDF) que imita o comportamento de TD_YEAR_BEGIN ou TD_YEAR_BEGIN(DATE, “COMPATIBLE”), retornando o primeiro dia do ano para uma determinada data.

PUBLIC.TD_YEAR_BEGIN_UDF(INPUT DATE)
Copy

Parâmetros

INPUT DATE

Obtém o primeiro dia do ano atual.

Retornos

O primeiro dia de janeiro.

Exemplo de uso

Entrada:

SELECT TD_YEAR_BEGIN(DATE '2022-01-01', 'COMPATIBLE'),
TD_YEAR_BEGIN(DATE '2022-04-12');
Copy

Saída:

2022-01-01, 2022-01-01
Copy

FULL_MONTH_NAME_UDF

Definição

Retorna o nome completo de um mês na formatação de sua escolha: todas as letras maiúsculas, todas as letras minúsculas ou apenas a primeira letra em maiúscula.

PUBLIC.FULL_MONTH_NAME_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

O formato da data deve exibir o nome do mês.

RESULTCASE VARCHAR

O formato em que o resultado deve ser exibido. As opções válidas são “uppercase”, “lowercase” ou “capitalized”.

Retornos

Retorna um varchar contendo o nome completo de um mês

Exemplo de uso

Entrada:

SELECT PUBLIC.FULL_MONTH_NAME_UDF(DATE '2021-10-26', 'uppercase');
SELECT PUBLIC.FULL_MONTH_NAME_UDF(DATE '2021-10-26', 'lowercase');
SELECT PUBLIC.FULL_MONTH_NAME_UDF(DATE '2021-10-26', 'firstOnly');
Copy

Saída:

OCTOBER
october
October
Copy

TO_BYTES_HEX_UDF

Definição

Converte um número decimal (base 10) em sua representação hexadecimal (base 16).

TO_BYTES_HEX_UDF(INPUT FLOAT)
Copy

Parâmetros

INPUT é um parâmetro de número de ponto flutuante.

O número que será convertido em formato hexadecimal.

Retornos

Uma cadeia de caracteres que representa o valor hexadecimal.

Exemplo de uso

Entrada:

SELECT TO_BYTES_HEX_UDF('448');
Copy

Saída:

01c0
Copy

PERIOD_INTERSECT_UDF

Definição

Uma função definida pelo usuário (UDF) que replica o operador P_INTERSECT. Essa função compara dois ou mais períodos de tempo e identifica onde eles se sobrepõem, retornando o intervalo de tempo comum entre eles.

Para obter mais detalhes sobre a função de origem, consulte a documentação .

PERIOD_INTERSECT_UDF(PERIODS ARRAY)
Copy

Parâmetros

PERIODS é uma matriz que contém períodos de tempo.

Todas as expressões de período que precisam ser comparadas.

Retornos

A seção em que dois períodos de tempo se cruzam ou compartilham datas comuns.

Exemplo de migração

Entrada:

SELECT
	PERIOD(DATE '2009-01-01', DATE '2010-09-24')
	P_INTERSECT
	PERIOD(DATE '2009-02-01', DATE '2009-06-24');
Copy

Saída:

SELECT
	PUBLIC.PERIOD_INTERSECT_UDF(ARRAY_CONSTRUCT(PUBLIC.PERIOD_UDF(DATE '2009-01-01', DATE '2010-09-24') !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!, PUBLIC.PERIOD_UDF(DATE '2009-02-01', DATE '2009-06-24') !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!)) !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!;
Copy

INTERVAL_TO_SECONDS_UDF

Definição

Converte um intervalo de tempo em segundos.

PUBLIC.INTERVAL_TO_SECONDS_UDF
(INPUT_PART VARCHAR(30), INPUT_VALUE VARCHAR())
Copy

Parâmetros

INPUT_PART é uma variável do tipo VARCHAR que armazena dados de entrada.

A duração do tempo que será convertida em segundos.

INPUT_VALUE VARCHAR - O parâmetro de entrada que aceita dados de texto. - O parâmetro de entrada que aceita dados de texto.

O tipo de intervalo de tempo para conversão. Os exemplos incluem “DAY”, “DAY TO HOUR” e outros tipos de intervalos válidos.

Retornos

Um número decimal que representa o intervalo de tempo em segundos.

TIMESTAMP_ADD_UDF

Definição

Combina dois carimbos de data/hora em um único valor.

PUBLIC.TIMESTAMP_ADD_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
Copy

Parâmetros

FIRST_DATE é um campo de carimbo de data/hora que inclui informações de data e hora, com suporte a fuso horário (TIMESTAMP_LTZ)

A data inicial em que isso foi adicionado.

SECOND_DATE é uma coluna de carimbo de data/hora que inclui informações de fuso horário (TIMESTAMP_LTZ) (carimbo de data/hora com fuso horário local)

A data em que o item foi adicionado pela segunda vez.

Retornos

Um carimbo de data/hora gerado pela combinação dos parâmetros de data de entrada.

INTERVAL_MULTIPLY_UDF

Definição

Uma função definida pelo usuário (UDF) que realiza operações de multiplicação em intervalos de tempo.

PUBLIC.INTERVAL_MULTIPLY_UDF
(INPUT_PART VARCHAR(30), INPUT_VALUE VARCHAR(), INPUT_MULT INTEGER)
Copy

Parâmetros

INPUT_PART é uma variável do tipo VARCHAR que armazena dados de entrada.

O valor usado para multiplicação, especificado como “YEAR TO MONTH”.

INPUT_VALUE VARCHAR

O intervalo pelo qual é feita a multiplicação.

INPUT_MULT é um parâmetro inteiro que serve como multiplicador dos valores de entrada.

O número que será usado na operação de multiplicação.

Retornos

A saída é calculada pela multiplicação de um intervalo de tempo por um valor numérico.

Exemplo de migração

Entrada:

SELECT INTERVAL '6-10' YEAR TO MONTH * 8;
Copy

Saída:

SELECT
PUBLIC.INTERVAL_MULTIPLY_UDF('YEAR TO MONTH', '6-10', 8);
Copy

TD_DAY_OF_WEEK_UDF

Definição

Função definida pelo usuário (UDF) que replica a funcionalidade TD_DAY_OF_WEEK do Teradata. Para obter detalhes sobre a função original do Teradata, veja aqui.

PUBLIC.TD_DAY_OF_WEEK_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

Data a partir da qual se obtém o dia da semana.

Retornos

Um número inteiro de 1 a 7 que representa o dia da semana, onde:

  • 1 = domingo

  • 2 = segunda-feira

  • 3 = terça-feira

  • 4 = quarta-feira

  • 5 = quinta-feira

  • 6 = sexta-feira

  • 7 = sábado

Exemplo de migração

Entrada:

SELECT td_day_of_week(DATE '2022-03-02');
Copy

Saída:

SELECT
PUBLIC.TD_DAY_OF_WEEK_UDF(DATE '2022-03-02');
Copy

ISO_YEAR_PART_UDF

Definição

Calcula o ano civil ISO a partir de uma determinada data. O resultado pode ser reduzido especificando o número de dígitos a serem mantidos.

PUBLIC.ISO_YEAR_PART_UDF(INPUT TIMESTAMP_TZ, DIGITS INTEGER)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data da qual se extrai o ano ISO.

DIGITS Um número inteiro que representa o número máximo de dígitos a serem exibidos

O número de casas decimais desejado na saída.

Retornos

Retorna uma cadeia de caracteres (varchar) que representa o ano ISO de uma determinada data.

Exemplo de uso

Entrada:

SELECT PUBLIC.ISO_YEAR_PART_UDF(DATE '2021-10-26', 3);
SELECT PUBLIC.ISO_YEAR_PART_UDF(DATE '2021-10-26', 2);
SELECT PUBLIC.ISO_YEAR_PART_UDF(DATE '2021-10-26', 1);
Copy

Saída:

'021'
'21'
'1'
Copy

DIFF_TIME_PERIOD_UDF

Definição

Calcula o intervalo de tempo entre duas datas com base no parâmetro de unidade de tempo especificado.

PUBLIC.DIFF_TIME_PERIOD_UDF(TIME STRING, PERIOD VARCHAR(50))
Copy

Parâmetros

TIME é um tipo de dados usado para armazenar valores de tempo em horas, minutos, segundos e frações de segundos. É um tipo de dados que representa um valor de tempo armazenado como uma cadeia de texto.

O carimbo de data/hora que será usado como ponto de ancoragem.

PERIOD Um campo de texto (VARCHAR) que representa um período de tempo

A coluna de período usada para expansão.

Retornos

Um valor numérico que indica o intervalo de tempo entre duas datas.

Exemplo de uso

Entrada:

SELECT DIFF_TIME_PERIOD_UDF('SECONDS','2022-11-26 10:15:20.000*2022-11-26 10:15:25.000');
Copy

Saída:

5
Copy

WEEK_NUMBER_OF_QUARTER_ISO_UDF

Definição

Calcula o número da semana em que uma data se enquadra em seu trimestre, usando os padrões do calendário ISO. Essa função se comporta de forma idêntica à função WEEKNUMBER_OF_QUARTER(DATE, 'ISO') do Teradata.

PUBLIC.WEEK_NUMBER_OF_QUARTER_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data usada para calcular em qual semana do trimestre ela se enquadra.

Retornos

Um número inteiro que indica a semana do trimestre (1-13) que você representa.

Exemplo de uso

Entrada:

SELECT WEEKNUMBER_OF_QUARTER(DATE '2022-05-01', 'ISO'),
WEEKNUMBER_OF_QUARTER(DATE '2022-07-06', 'ISO')
Copy

Saída:

SELECT
PUBLIC.SUBSTR_UDF('Hello World!', -2);
Copy

NVP_UDF

Definição

Desempenha a mesma função que a funçãoNVP do Teradata.

NVP_UDF(INSTRING VARCHAR, NAME_TO_SEARCH VARCHAR, NAME_DELIMITERS VARCHAR, VALUE_DELIMITERS VARCHAR, OCCURRENCE FLOAT)
Copy

Parâmetros

INSTRING VARCHAR

Os pares nome-valor são elementos de dados que consistem em um nome e seu valor correspondente.

NAME_TO_SEARCH do tipo VARCHAR

O parâmetro de nome usado para pesquisar na função Name-Value Pair (NVP).

NAME_DELIMITERS VARCHAR

O caractere usado para separar os nomes de seus valores correspondentes.

VALUE_DELIMITERS VARCHAR

O caractere usado para conectar um nome ao seu valor correspondente.

OCCURRENCE representa um número de ponto flutuante que indica quantas vezes algo ocorre

O número de padrões correspondentes a serem pesquisados.

Retornos

Uma cadeia de texto (VARCHAR) contendo dados idênticos aos da cadeia de entrada.

Exemplo de uso

Entrada:

SELECT PUBLIC.NVP_UDF('entree=-orange chicken&entree+.honey salmon', 'entree', '&', '=- +.', 1);
Copy

Saída:

orange chicken
Copy

MONTH_SHORT_UDF

Definição

Retorna o nome abreviado de um mês (três letras) no formato de maiúsculas, minúsculas ou maiúsculas que você escolher. Por exemplo: «Jan», «jan», ou «JAN».

PUBLIC.MONTH_SHORT_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data formatada para exibir o nome abreviado do mês.

RESULTCASE VARCHAR

O formato de letras maiúsculas a ser usado. As opções válidas são:

  • “uppercase”: converte o texto para todas as letras maiúsculas

  • “lowercase”: converte o texto para todas as letras minúsculas

  • “firstOnly”: coloca apenas a primeira letra em maiúscula

Retornos

Um varchar contendo o nome abreviado de um mês (por exemplo, «Jan», «Feb», etc.).

Exemplo de uso

Entrada:

SELECT PUBLIC.MONTH_SHORT_UDF(DATE '2021-10-26', 'uppercase');
SELECT PUBLIC.MONTH_SHORT_UDF(DATE '2021-10-26', 'lowercase');
SELECT PUBLIC.MONTH_SHORT_UDF(DATE '2021-10-26', 'firstOnly');
Copy

Saída:

OCT
oct
Oct
Copy

DATE_TO_INT_UDF

Definição

UDF (função definida pelo usuário) que converte um valor de data em sua representação numérica, semelhante à função DATE-TO-NUMERIC do Teradata.

PUBLIC.DATE_TO_INT_UDF(DATE_TO_CONVERT DATE)
Copy

Parâmetros

DATE_TO_CONVERT representa um valor de data que precisa ser convertido

Converte o valor da data em um formato inteiro.

Retornos

Retorna um valor de data em formato numérico.

Exemplo

Entrada:

SELECT mod(date '2015-11-26', 5890), sin(current_date);

CREATE TABLE SAMPLE_TABLE
(
    VARCHAR_TYPE VARCHAR,
    CHAR_TYPE CHAR(11),
    INTEGER_TYPE INTEGER,
    DATE_TYPE DATE,
    TIMESTAMP_TYPE TIMESTAMP,
    TIME_TYPE TIME,
    PERIOD_TYPE PERIOD(DATE)
);

REPLACE VIEW SAMPLE_VIEW
AS
SELECT
CAST(DATE_TYPE AS SMALLINT),
CAST(DATE_TYPE AS DECIMAL),
CAST(DATE_TYPE AS NUMBER),
CAST(DATE_TYPE AS FLOAT),
CAST(DATE_TYPE AS INTEGER)
FROM SAMPLE_TABLE;
Copy

Saída:

SELECT
mod(PUBLIC.DATE_TO_INT_UDF(date '2015-11-26'), 5890),
sin(PUBLIC.DATE_TO_INT_UDF(CURRENT_DATE()));

CREATE TABLE PUBLIC.SAMPLE_TABLE
(
    VARCHAR_TYPE VARCHAR,
    CHAR_TYPE CHAR(11),
    INTEGER_TYPE INTEGER,
    DATE_TYPE DATE,
    TIMESTAMP_TYPE TIMESTAMP,
    TIME_TYPE TIME,
    PERIOD_TYPE VARCHAR(24) COMMENT 'PERIOD(DATE)' /*** MSC-WARNING - MSCEWI1036 - PERIOD DATA TYPE "PERIOD(DATE)" CONVERTED TO VARCHAR ***/
);

CREATE OR REPLACE VIEW PUBLIC.SAMPLE_VIEW
AS
SELECT
PUBLIC.DATE_TO_INT_UDF(DATE_TYPE),
PUBLIC.DATE_TO_INT_UDF(DATE_TYPE),
PUBLIC.DATE_TO_INT_UDF(DATE_TYPE),
PUBLIC.DATE_TO_INT_UDF(DATE_TYPE),
PUBLIC.DATE_TO_INT_UDF(DATE_TYPE)
FROM PUBLIC.SAMPLE_TABLE;
Copy

PERIOD_UDF

Definição

Uma função definida pelo usuário (UDF) que replica o operador P_INTERSECT. Essa função compara dois ou mais períodos de tempo e identifica onde eles se sobrepõem, retornando o intervalo de tempo comum entre eles.

Cria uma representação de cadeia de caracteres dos valores de início e fim de um período (para TIMESTAMP representa um tipo de dados que armazena informações de data e hora, TIME ou DATE é um tipo de dados usado para armazenar datas de calendário (ano, mês e dia) sem informações de hora). Essa função emula a função do construtor de valores de período do Teradata. A cadeia de caracteres de saída segue o formato padrão do Snowflake para os valores do PERIOD. Para ajustar a precisão da saída, você pode:

  • Modificar o parâmetro da sessão timestamp_output_format

  • Use a versão de três parâmetros desta UDF

Mais detalhes sobre a função de origem podem ser encontrados na documentação do Teradata.

PERIOD_UDF(D1 TIMESTAMP_NTZ, D2 TIMESTAMP_NTZ)
PERIOD_UDF(D1 DATE, D2 DATE)
PERIOD_UDF(D1 TIME, D2 TIME)
PERIOD_UDF(D1 TIMESTAMP_NTZ, D2 TIMESTAMP_NTZ, PRECISIONDIGITS INT)
PERIOD_UDF(D1 TIME, D2 TIME, PRECISIONDIGITS INT)
PERIOD_UDF(D1 TIMESTAMP_NTZ)
PERIOD_UDF(D1 DATE)
PERIOD_UDF(D1 TIME)
Copy

Parâmetros

TIMESTAMP

O tipo de dados TimeStamp representa um ponto específico no tempo, incluindo os componentes de data e hora.

TIME

O tipo de dados Time representa uma hora específica do dia sem um componente de data.

DATE

O tipo de dados Date representa uma data de calendário sem um componente de tempo.

PRECISIONDIGITS especifica o número de casas decimais a serem exibidas em valores numéricos.

O número de dígitos a serem exibidos no formato de hora.

Retornos

Retorna uma representação de cadeia de caracteres de um valor do tipo PERIOD

Exemplo de uso

Entrada:

SELECT
PERIOD_UDF('2005-02-03'),
PERIOD_UDF(date '2005-02-03'),
PERIOD_UDF(TIMESTAMP '2005-02-03 12:12:12.340000'),
PERIOD_UDF(TIMESTAMP '2005-02-03 12:12:12.340000');
Copy

Saída:

2005-02-03*2005-02-04,
2005-02-03*2005-02-04,
2005-02-03 12:12:12.340000*2005-02-03 12:12:12.340001,
2005-02-03 12:12:12.340000*2005-02-03 12:12:12.340001
Copy

DAYNAME_LONG_UDF (TIMESTAMP_TZ, VARCHAR)

Aviso

Essa é a função definida pelo usuário (UDF) que aceita dois tipos de parâmetros diferentes.

Definição

Retorna o nome completo de um dia da semana em letras maiúsculas, minúsculas ou maiúsculas (por exemplo, «MONDAY», «monday» ou «Monday»).

PUBLIC.DAYNAME_LONG_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data de entrada a partir da qual se determina o dia da semana.

RESULTCASE VARCHAR

O resultado ou cenário esperado que será demonstrado.

Retornos

Retorna uma cadeia de caracteres que contém o nome completo de um dia da semana.

Exemplo de uso

Entrada:

SELECT PUBLIC.DAYNAME_LONG_UDF(DATE '2021-10-26', 'uppercase');
SELECT PUBLIC.DAYNAME_LONG_UDF(DATE '2021-10-26', 'lowercase');
SELECT PUBLIC.DAYNAME_LONG_UDF(DATE '2021-10-26', 'firstOnly');
Copy

Saída:

'TUESDAY'
'tuesday'
'Tuesday'
Copy

TD_DAY_OF_WEEK_COMPATIBLE_UDF

Definição

Processa um carimbo de data/hora para determinar em que dia da semana ele cai. Essa função se comporta de forma idêntica a DAYNUMBER_OF_WEEK(DATE, 'COMPATIBLE').

PUBLIC.TD_DAY_OF_WEEK_COMPATIBLE_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data de entrada usada para determinar o dia da semana.

Retornos

Retorna um número de 1 a 7 que representa o dia da semana, em que 1 representa o primeiro dia da semana. Por exemplo, se o dia 1º de janeiro cair em uma quarta-feira, então quarta-feira = 1, quinta-feira = 2, sexta-feira = 3, sábado = 4, domingo = 5, segunda-feira = 6 e terça-feira = 7.

Exemplo de uso

Entrada:

SELECT PUBLIC.TD_DAY_OF_WEEK_COMPATIBLE_UDF(DATE '2022-01-01'),
PUBLIC.TD_DAY_OF_WEEK_COMPATIBLE_UDF(DATE '2023-05-05');
Copy

Saída:

1, 6
Copy

JAROWINKLER_UDF

Definição

Calcula a semelhança entre duas cadeias de caracteres usando o algoritmo Jaro-Winkler. Esse algoritmo dá uma pontuação entre 0 (completamente diferente) e 1 (idêntico).

PUBLIC.JAROWINKLER_UDF (string1 VARCHAR, string2 VARCHAR)
Copy

Parâmetros

string1 do tipo VARCHAR

O texto a ser processado

string2 do tipo VARCHAR

O texto a ser processado

Retornos

A função retorna 0 ou 1.

Exemplo de uso

Entrada:

SELECT PUBLIC.JAROWINKLER_UDF('święta', 'swieta')
Copy

Saída:

0.770000
Copy

YEAR_BEGIN_ISO_UDF

Definição

UDF que calcula o primeiro dia do ano ISO para uma determinada data. Ela funciona encontrando a segunda-feira mais próxima do dia 1º de janeiro do ano, usando a função DAYOFWEEKISO em combinação com PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF. A função adiciona ou subtrai dias para localizar essa segunda-feira.

PUBLIC.YEAR_BEGIN_ISO_UDF(INPUT DATE)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data que representa o dia 1º de janeiro do ano atual de acordo com o padrão de calendário ISO.

Retornos

O primeiro dia do ano de acordo com o padrão do calendário ISO.

Exemplo de uso

Entrada:

SELECT  PUBLIC.YEAR_BEGIN_ISO_UDF(DATE '2022-01-01'),
PUBLIC.YEAR_BEGIN_ISO_UDF(DATE '2022-04-12');
Copy

Saída:

2021-01-04, 2022-01-03
Copy

YEAR_PART_UDF

Definição

Extrai o ano de uma data e o trunca em um número especificado de dígitos.

PUBLIC.YEAR_PART_UDF(INPUT TIMESTAMP_TZ, DIGITS INTEGER)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data da qual se extrai o ano.

DIGITS Um número inteiro que representa o número máximo de dígitos a serem exibidos

O número de casas decimais desejado na saída.

Retornos

Extrai o componente do ano de uma data especificada.

Exemplo de uso

Entrada:

SELECT PUBLIC.YEAR_PART_UDF(DATE '2021-10-26', 3);
SELECT PUBLIC.YEAR_PART_UDF(DATE '2021-10-26', 2);
SELECT PUBLIC.YEAR_PART_UDF(DATE '2021-10-26', 1);
Copy

Saída:

'021'
'21'
'1'
Copy

YEAR_WITH_COMMA_UDF

Definição

Extrai o ano de uma data e adiciona uma vírgula entre o primeiro e o segundo dígitos. Por exemplo, se o ano for 2023, ele retornará «2.023».

PUBLIC.YEAR_WITH_COMMA_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data de entrada da qual será extraído o ano.

Retornos

Retorna a parte do ano de um valor de data como um varchar (texto) com um separador de vírgula.

Exemplo de uso

Entrada:

SELECT PUBLIC.YEAR_WITH_COMMA_UDF(DATE '2021-10-26');
Copy

Saída:

'2,021'
Copy

MONTHS_BETWEEN_UDF

Definição

Calcula o número de meses entre duas datas

MONTHS_BETWEEN_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
Copy

Parâmetros

FIRST_DATE é uma coluna de carimbo de data/hora que inclui informações de data e hora, com suporte a fuso horário (TIMESTAMP_LTZ)

A data inicial a partir da qual a função começará a processar os dados.

SECOND_DATE TIMESTAMP_LTZ

A data final que define quando a contagem deve ser interrompida.

Retornos

A duração em meses entre duas datas.

Exemplo de uso

Entrada:

SELECT MONTHS_BETWEEN_UDF('2022-02-14', '2021-02-14');
Copy

Saída:

12
Copy

SECONDS_PAST_MIDNIGHT_UDF

Definição

Calcula o número de segundos decorridos desde a meia-noite para um horário especificado.

PUBLIC.SECONDS_PAST_MIDNIGHT_UDF(INPUT TIME)
Copy

Parâmetros

INPUT TIME

A função calcula o número total de segundos decorridos desde a meia-noite (00:00:00) até a hora atual.

Retornos

Um valor varchar que representa o número de segundos decorridos desde a meia-noite.

Exemplo de uso

Entrada:

SELECT PUBLIC.SECONDS_PAST_MIDNIGHT_UDF(TIME'10:30:45');
Copy

Saída:

'37845'
Copy

CHAR2HEXINT_UDF

Definição

Retorna uma cadeia de caracteres que contém a representação hexadecimal (base 16) de cada caractere na cadeia de caracteres de entrada.

PUBLIC.CHAR2HEXINT_UDF(INPUT_STRING VARCHAR);
Copy

Parâmetros

INPUT_STRING é uma variável do tipo VARCHAR que armazena dados de texto.

A cadeia de caracteres de entrada que precisa ser convertida.

Retornos

Retorna uma cadeia de caracteres que contém a representação hexadecimal da string de entrada.

Exemplo

Entrada:

SELECT CHAR2HEXINT('1234') from t1;
Copy

Saída:

SELECT
PUBLIC.CHAR2HEXINT_UDF('1234') from
t1;
Copy

Mais informações da função de origem

A documentação da função está disponível na documentação do Teradata.

INTERVAL_ADD_UDF

Definição

UDFs (funções definidas pelo usuário) que manipulam operações de subtração entre um valor de intervalo e uma referência de coluna do tipo intervalo.

PUBLIC.INTERVAL_ADD_UDF
(INPUT_VALUE1 VARCHAR(), INPUT_PART1 VARCHAR(30), INPUT_VALUE2 VARCHAR(), INPUT_PART2 VARCHAR(30), OP CHAR, OUTPUT_PART VARCHAR())
Copy

Parâmetros

INPUT_VALUE1 do tipo VARCHAR

Os dados de entrada que serão processados pelo sistema.

INPUT_PART1 do tipo VARCHAR

A unidade de tempo a ser usada, como “HOUR”.

INPUT_VALUE2 é um parâmetro de tipo de dados VARCHAR.

O nome da coluna referenciada, como “INTERVAL_HOUR_TYPE

INPUT_PART2 VARCHAR

O tipo de dados atribuído à coluna referenciada.

Caractere OP

O símbolo ou operador que está sendo analisado no momento.

OUTPUT_PART VARCHAR

O tipo de dados do valor retornado.

Retornos

Um valor varchar que representa o resultado da subtração de dois intervalos de tempo.

Exemplo de migração

Entrada:

CREATE TABLE INTERVAL_TABLE
(
    INTERVAL_YEAR_TYPE INTERVAL YEAR
);

SELECT INTERVAL_YEAR_TYPE - INTERVAL '7' MONTH FROM INTERVAL_TABLE;
Copy

Saída:

CREATE OR REPLACE TABLE INTERVAL_TABLE
(
    INTERVAL_YEAR_TYPE VARCHAR(21) !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - INTERVAL YEAR DATA TYPE CONVERTED TO VARCHAR ***/!!!
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"teradata"}}'
;

SELECT
    PUBLIC.INTERVAL_ADD_UDF(INTERVAL_YEAR_TYPE, 'YEAR', '7', 'MONTH', '-', 'YEAR TO MONTH')
    FROM
    INTERVAL_TABLE;
Copy

DAY_OF_WEEK_LONG_UDF

Definição

Uma função definida pelo usuário (UDF) que converte um carimbo de data/hora no nome completo do dia (por exemplo, «Monday», «Tuesday», etc.).

PUBLIC.DAY_OF_WEEK_LONG_UDF(INPUT_DATE TIMESTAMP)
Copy

Parâmetros

INPUT_DATE representa um valor de carimbo de data/hora

O carimbo de data/hora será convertido em um nome de dia completo (por exemplo, «segunda-feira», «terça-feira» etc.).

Retornos

O nome do dia em inglês.

TD_WEEK_OF_CALENDAR_UDF

Definição

A função definida pelo usuário (UDF) serve como substituta direta da função TD_WEEK_OF_CALENDAR do Teradata, fornecendo a mesma funcionalidade no Snowflake.

PUBLIC.TD_WEEK_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

Data usada para calcular o número de semanas decorridas desde 1º de janeiro de 1900.

Retornos

Um número inteiro que representa o número de semanas completas entre 1º de janeiro de 1900 e a data especificada

Exemplo de migração

Entrada:

SELECT TD_WEEK_OF_CALENDAR(DATE '2023-11-30')
Copy

Saída:

SELECT
PUBLIC.TD_WEEK_OF_CALENDAR_UDF(DATE '2023-11-30');
Copy

WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF

Definição

Converte números negativos para usar colchetes angulares (< >) em vez do sinal de menos (-). Essa conversão ocorre quando o elemento de formato PR (parênteses) está presente na string de formato Teradata original.

PUBLIC.WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF(INPUT NUMBER, FORMATARG VARCHAR)
Copy

Parâmetros

INPUT é um valor numérico

O valor numérico que será convertido em uma cadeia de texto (varchar).

FORMATARG é um parâmetro do tipo VARCHAR que especifica o formato dos dados.

O parâmetro format especifica como converter o valor INPUT em uma representação de texto (varchar).

Retornos

Um varchar contendo números negativos entre colchetes angulares (< >).

Exemplo de uso

Entrada:

SELECT PUBLIC.WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF(8456, '9999');
SELECT PUBLIC.WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF(-8456, '9999');
Copy

Saída:

'8456'
'<8456>'
Copy

INSTR_UDF (STRING, STRING)

Aviso

Essa é a função definida pelo usuário (UDF) que aceita dois conjuntos de parâmetros diferentes.

Definição

Encontra todas as instâncias em que search_string aparece em source_string.

PUBLIC.INSTR_UDF(SOURCE_STRING STRING, SEARCH_STRING STRING)
Copy

Parâmetros

SOURCE_STRING representa a cadeia de caracteres de entrada que precisa ser processada

O texto que será pesquisado.

SEARCH_STRING é um parâmetro do tipo STRING que especifica o texto a ser pesquisado.

O padrão de texto que a função procurará e corresponderá.

Retornos

A posição do índice em que o padrão é encontrado na cadeia de caracteres de origem (a partir da posição 1).

Exemplo de uso

Entrada:

SELECT INSTR_UDF('INSTR FUNCTION','N');
Copy

Saída:

2
Copy

TRANSLATE_CHK_UDF

Definição

Verifica se o código pode ser convertido com êxito sem gerar nenhum erro.

PUBLIC.TRANSLATE_CHK_UDF(COL_NAME STRING, SOURCE_REPERTOIRE_NAME STRING)
Copy

Parâmetros

COL_NAME é uma variável de cadeia de caracteres que representa o nome de uma coluna.

A coluna que precisa ser validada.

SOURCE_REPERTOIRE_NAME é um parâmetro de cadeia de caracteres que especifica o nome do diretório de origem.

O nome da coleção ou biblioteca de origem.

Retornos

0: A tradução foi bem-sucedida e concluída sem erros. NULL: Nenhum resultado foi retornado (valor nulo).

A posição do primeiro caractere na cadeia de caracteres está causando um erro de tradução.

Exemplo de uso

Entrada:

SELECT PUBLIC.TRANSLATE_CHK_UDF('ABC', 'UNICODE_TO_LATIN');
Copy

Saída:

0
Copy

EXPAND_ON_UDF

Nota

Para facilitar a leitura, simplificamos algumas seções do código neste exemplo.

Definição

Replica o comportamento da função de expansão do Teradata.

PUBLIC.EXPAND_ON_UDF(TIME STRING, SEQ NUMBER, PERIOD STRING)
Copy

Parâmetros

TIME é um tipo de dados que armazena valores de tempo como texto (STRING).

O tempo necessário para que a âncora se expanda totalmente.

Número de sequência SEQ

A ordem em que os valores de cada linha são computados.

PERIOD Um valor de texto que representa um período de tempo

A data para o período de tempo especificado.

Retornos

Um valor VARCHAR que define como calcular o período de expansão na cláusula expand-on.

Exemplo de migração

Entrada:

SELECT bg FROM table1 EXPAND ON pd AS bg BY ANCHOR ANCHOR_SECOND;
Copy

Saída:

WITH
ExpandOnCTE AS
(
SELECT
PUBLIC.EXPAND_ON_UDF('ANCHOR_SECOND', VALUE, pd) bg
FROM
table1,
TABLE(FLATTEN(PUBLIC.ROW_COUNT_UDF(PUBLIC.DIFF_TIME_PERIOD_UDF('ANCHOR_SECOND', pd))))
)
SELECT
bg
FROM
table1,
ExpandOnCTE;
Copy

ROW_COUNT_UDF

Definição

Retorna uma matriz contendo números sequenciais de 1 até o valor retornado por DIFF_TIME_PERIOD_UDF.

PUBLIC.ROW_COUNT_UDF(NROWS DOUBLE)
Copy

Parâmetros

NROWS representa o número total de linhas em um conjunto de dados como um número decimal (DOUBLE)

O valor retornado pela função DIFF_TIME_PERIOD_UDF.

Retornos

Uma matriz que determina o número de linhas necessárias para replicar a funcionalidade da cláusula EXPAND ON.

Exemplo de uso

Entrada:

SELECT ROW_COUNT_UDF(DIFFTTIME_PERIOD('SECONDS','2022-11-26 10:15:20.000*2022-11-26 10:15:25.000'));
Copy

Saída:

[1, 2, 3, 4, 5]
Copy

Exemplo de migração

Entrada:

SELECT NORMALIZE emp_id, duration FROM project EXPAND ON duration AS bg BY ANCHOR ANCHOR_SECOND;
Copy

Saída:

WITH ExpandOnCTE AS
(
SELECT
    PUBLIC.EXPAND_ON_UDF('ANCHOR_SECOND', VALUE, duration) bg
FROM
    project,
TABLE(FLATTEN(PUBLIC.ROW_COUNT_UDF(PUBLIC.DIFF_TIME_PERIOD_UDF('ANCHOR_SECOND', duration))))
)
SELECT NORMALIZE emp_id,
    duration
FROM
    project,
    ExpandOnCTE;
Copy

CENTURY_UDF

Definição

Calcula o século para uma determinada data.

PUBLIC.CENTURY_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data de entrada usada para determinar o século.

Retornos

Retorna o número do século como um varchar para uma determinada data.

Exemplo de uso

Entrada:

SELECT PUBLIC.CENTURY_UDF(DATE '1915-02-23');
Copy

Saída:

'20'
Copy

TIME_DIFFERENCE_UDF

Aviso

Essa UDF está obsoleta, pois o Snowflake agora oferece uma função equivalente incorporada. Para obter mais detalhes, consulte a documentação TIMEDIFF.

Definição

Calcula o intervalo de tempo entre dois carimbos de data/hora fornecidos.

PUBLIC.TIME_DIFFERENCE_UDF
(MINUEND TIME, SUBTRAHEND TIME, INPUT_PART VARCHAR)
Copy

Parâmetros

MINUEND Um valor de carimbo de data/hora do qual haverá subtração

Tempo a ser subtraído do valor original.

SUBTRAHEND O valor do carimbo de data/hora a ser subtraído de outro carimbo de data/hora

O tempo que foi subtraído.

INPUT_PART é uma variável do tipo VARCHAR que armazena dados de entrada.

EXTRACT_PART é uma variável do tipo VARCHAR que armazena a parte extraída de uma cadeia de caracteres.

Extrair um valor numérico de um intervalo de tempo.

Retornos

Um valor de texto (VARCHAR) que representa uma hora específica.

Exemplo

Entrada:

select extract(day from (timestampColumn1 - timestampColumn2 day to hour)) from tableName;
Copy

Saída:

SELECT
EXTRACT_TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'DAY TO HOUR', 'DAY')
                                 from
tableName;
Copy

INTERVAL_DIVIDE_UDF

Definição

Uma função personalizada (UDF) que realiza cálculos de divisão de intervalos.

PUBLIC.INTERVAL_DIVIDE_UDF
(INPUT_PART VARCHAR(30), INPUT_VALUE VARCHAR(), INPUT_DIV INTEGER)
Copy

Parâmetros

INPUT_PART é uma variável do tipo VARCHAR que representa a parte de entrada dos dados.

O valor que especifica o tipo de intervalo, como “YEAR TO MONTH”.

INPUT_VALUE VARCHAR

O intervalo de tempo a ser dividido.

INPUT_DIV é um valor inteiro que representa o divisor de entrada.

O número que será dividido por outro número.

Retornos

A saída é calculada pela divisão de um intervalo de tempo por um valor numérico.

Exemplo de migração

Entrada:

SELECT INTERVAL '6-10' YEAR TO MONTH / 8;
Copy

Saída:

SELECT
PUBLIC.INTERVAL_DIVIDE_UDF('YEAR TO MONTH', '6-10', 8);
Copy

DAYNUMBER_OF_MONTH_UDF

Definição

A UDF determina em que dia do mês um determinado carimbo de data/hora cai. Ela funciona de forma semelhante à função DAYNUMBER_OF_MONTH(DATE, “ISO”) do Teradata.

PUBLIC.DAYNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

Um valor de data que será usado para determinar o dia da semana correspondente.

Retornos

Um número inteiro de 1 a 33 (inclusive).

Exemplo

Entrada:

SELECT DAYNUMBER_OF_MONTH (DATE'2022-12-22', 'ISO');
Copy

Saída:

SELECT
PUBLIC.DAYNUMBER_OF_MONTH_UDF(DATE'2022-12-22');
Copy

LAST_DAY_DECEMBER_OF_ISO_UDF

Definição

UDF (função definida pelo usuário) que processa 31 de dezembro e retorna o ano correspondente em ISO. Essa função é usada como um componente do cálculo PUBLIC.YEAR_END_IDO_UDF.

PUBLIC.LAST_DAY_DECEMBER_OF_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

Para obter o último dia de dezembro usando o formato de ano ISO, use 31 de dezembro.

Retornos

Uma data que representa 31 de dezembro no formato de ano ISO.

Exemplo de uso

Entrada:

SELECT PUBLIC.LAST_DAY_DECEMBER_OF_ISO_UDF(DATE '2022-01-01');
Copy

Saída:

2021-12-31
Copy

DATEADD_UDF

Nota

Para facilitar a leitura, simplificamos algumas seções do código neste exemplo.

Definição

Função para calcular a soma de duas datas

PUBLIC.DATE_ADD_UDF(FIRST_DATE DATE, SECOND_DATE DATE)
Copy

Parâmetros

FIRST_DATE representa uma coluna do tipo DATE

O valor da data inicial a ser incluído.

SECOND_DATE representa uma coluna do tipo DATE

Adicione o segundo valor de data junto com first_date.

Retornos

O resultado é uma data calculada pela combinação de ambos os parâmetros de entrada.

Exemplo

Entrada:

SELECT
    CAST(CAST (COLUMNB AS DATE FORMAT 'MM/DD/YYYY') AS TIMESTAMP(0))
    +
    CAST (COLUMNA AS TIME(0) FORMAT 'HHMISS' )
FROM TIMEDIFF;
Copy

Saída:

SELECT
    PUBLIC.DATEADD_UDF(CAST(CAST(COLUMNB AS DATE) !!!RESOLVE EWI!!! /*** SSC-EWI-0033 - FORMAT 'MM/DD/YYYY' REMOVED, SEMANTIC INFORMATION NOT FOUND. ***/!!! AS TIMESTAMP(0)), PUBLIC.TO_INTERVAL_UDF(CAST(COLUMNA AS TIME(0)) !!!RESOLVE EWI!!! /*** SSC-EWI-0033 - FORMAT 'HHMISS' REMOVED, SEMANTIC INFORMATION NOT FOUND. ***/!!!))
    FROM
    TIMEDIFF;
Copy

JULIAN_TO_DATE_UDF

Definição

Uma função definida pelo usuário (UDF) que converte um formato de data juliana (YYYYDDD) em uma data padrão do calendário gregoriano (YYYY-MM-DD).

PUBLIC.JULIAN_TO_DATE_UDF(JULIAN_DATE CHAR(7))
Copy

Parâmetros

JULIAN_DATE CHAR - Um tipo de dados de caractere usado para armazenar datas no formato juliano.

A data a ser convertida do formato juliano.

Retornos

Retorna a representação de data da data juliana ou nula se a conversão não puder ser realizada.

Exemplo de uso

Entrada:

SELECT JULIAN_TO_DATE_UDF('2022045');
Copy

Saída:

'2022-02-14'
Copy

Exemplo de migração

Entrada:

SELECT TO_DATE('2020002', 'YYYYDDD');
Copy

Saída:

SELECT
PUBLIC.JULIAN_TO_DATE_UDF('2020002');
Copy

FIRST_DAY_JANUARY_OF_ISO_UDF

Definição

O primeiro dia de janeiro do ano civil ISO, que é usado pela função PUBLIC.YEAR_BEGIN_ISO_UDF para calcular o resultado.

FUNCTION PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data que representa 1º de janeiro usando o formato de ano civil ISO.

Retornos

Uma data que representa o dia 1º de janeiro do ano civil especificado em ISO.

Exemplo de uso

Entrada:

SELECT PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF(DATE '2022-01-01');
Copy

Saída:

2021-01-01
Copy

TIMESTAMP_DIFFERENCE_UDF

Definição

Como subtrair duas datas usando uma função definida pelo usuário (UDF)

PUBLIC.TIMESTAMP_DIFFERENCE_UDF
(MINUEND TIMESTAMP, SUBTRAHEND TIMESTAMP, INPUT_PART VARCHAR)
Copy

Diferenças entre a subtração de data e hora do Teradata e do Snowflake

O Teradata e o Snowflake usam métodos diferentes para cálculos de data e hora. Eles diferem em sua sintaxe, tipos de dados de saída e níveis de precisão.

Aviso

Ao realizar cálculos de datas, os resultados podem diferir em um dia devido a arredondamentos ou diferenças de fuso horário.

Parâmetros

MINUEND Um valor de carimbo de data/hora que será subtraído de representa o valor de carimbo de data/hora do qual será subtraído

A data que está sendo usada como ponto de partida para a subtração.

SUBTRAHEND é um valor de carimbo de data/hora que será subtraído de outro carimbo de data/hora.

A data foi removida.

INPUT_PART é uma variável do tipo VARCHAR (cadeia de caracteres de comprimento variável)

Peças que precisam ser devolvidas.

Retornos

Formata o valor da cadeia de caracteres com base no parâmetro INPUT_PART especificado.

Exemplo

Entrada:

select (timestampColumn1 - timestampColumn2 YEAR) from tableName;
Copy
SELECT
(
PUBLIC.TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'YEAR')) from
tableName;
Copy

FIRST_DAY_OF_MONTH_ISO_UDF

Definição

A função definida pelo usuário (UDF) retorna o primeiro dia de um determinado mês no formato ISO (YYYY-MM-DD).

PUBLIC.FIRST_DAY_OF_MONTH_ISO_UDF(YEAR NUMBER, MONTH NUMBER)
Copy

Parâmetros

YEAR é um tipo de dados numéricos usado para armazenar um valor de ano de quatro dígitos.

Um valor numérico que representa um ano civil (por exemplo, 2023).

MONTH Um valor numérico que representa um mês (1-12)

Um valor numérico (1-12) que representa um mês do calendário.

Retornos

Retorna o primeiro dia do mês atual no formato ISO (YYYY-MM-DD).

Exemplo

Nota

Esta UDF é uma função auxiliar usada na função DAYNUMBER_OF_MONTH_UDF.

INT_TO_DATE_UDF

Definição

UDF para converter valores numéricos em datas (função de compatibilidade do Teradata)

PUBLIC.INT_TO_DATE_UDF(NUMERIC_EXPRESSION INTEGER)
Copy

Parâmetros

NUMERIC_EXPRESSION representa um valor numérico ou uma expressão que é avaliada como um número inteiro

Um valor que representa uma data em um formato específico, como YYYY-MM-DD

Retornos

Número convertido em um formato de data.

Exemplo

Entrada:

SELECT * FROM table1
WHERE date_column > 1011219
Copy

Saída:

SELECT
* FROM
table1
WHERE date_column > PUBLIC.INT_TO_DATE_UDF( 1011219);
Copy

NULLIFZERO_UDF

Definição

Substitui os valores zero por NULL nos dados para evitar erros de divisão por zero.

PUBLIC.NULLIFZERO_UDF(NUMBER_TO_VALIDATE NUMBER)
Copy

Parâmetros

NUMBER_TO_VALIDATE NUMBER

O número que precisa ser validado.

Retornos

Retorna nulo se o número de entrada for zero; caso contrário, retorna o número original.

Exemplo de uso

SELECT NULLIFZERO_UDF(0);
Copy

Saída:

NULL
Copy

DATE_LONG_UDF

Definição

Converte uma data no formato “Day, Month DD, YYYY” (por exemplo, “Monday, January 01, 2024”). Esse formato corresponde ao elemento de formato de data DL do Teradata.

PUBLIC.DATE_LONG_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data deve ser exibida em um formato de data longa (por exemplo: «September 15, 2023»).

Retornos

Um tipo de dados VARCHAR que representa o elemento de formato DL do Teradata.

Exemplo de uso

Entrada:

SELECT PUBLIC.DATE_LONG_UDF(DATE '2021-10-26');
Copy

Saída:

'Tuesday, October 26, 2021'
Copy

TD_MONTH_OF_CALENDAR_UDF

Definição

A função definida pelo usuário (UDF) serve como substituta da função TD_MONTH_OF_CALENDAR do Teradata, fornecendo a mesma funcionalidade.

PUBLIC.TD_MONTH_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

Data usada para calcular o número de meses decorridos desde 1º de janeiro de 1900.

Retornos

Um número inteiro que representa o número de meses entre 1º de janeiro de 1900 e a data especificada

Exemplo de migração

Entrada:

SELECT TD_MONTH_OF_CALENDAR(DATE '2023-11-30')
Copy

Saída:

SELECT
PUBLIC.TD_MONTH_OF_CALENDAR_UDF(DATE '2023-11-30');
Copy

MONTH_NAME_LONG_UDF

Definição

Uma função definida pelo usuário (UDF) que converte um carimbo de data/hora em seu nome completo de mês correspondente.

PUBLIC.MONTH_NAME_LONG_UDF(INPUT_DATE TIMESTAMP)
Copy

Parâmetros

INPUT DATE

O carimbo de data/hora deve ser convertido para exibir o nome completo do mês.

Retornos

O nome do mês em inglês.

TD_DAY_OF_CALENDAR_UDF

Definição

Função definida pelo usuário (UDF) que replica a funcionalidade TO_DAY_OF_CALENDAR do Teradata

PUBLIC.TD_DAY_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

Data usada para calcular o número de dias decorridos desde 1º de janeiro de 1900.

Retornos

Um número inteiro que representa o número de dias entre 1º de janeiro de 1900 e a data INPUT

Exemplo de migração

Entrada:

SELECT td_day_of_calendar(current_date)
Copy

Saída:

SELECT
PUBLIC.TD_DAY_OF_CALENDAR_UDF(CURRENT_DATE());
Copy

PERIOD_TO_TIME_UDF

Definição

Função que converte um valor de PERIOD do Teradata em um valor TIME, mantendo o comportamento de conversão do Teradata.

PERIOD_TO_TIME_UDF(PERIOD_VAL VARCHAR(22))
Copy

Parâmetros

PERIOD_VAL representa um valor de período de tempo

O período de tempo que precisa ser convertido.

Retornos

A função retorna um valor TIME que representa o PERIOD. Se a conversão não puder ser concluída, ele retornará null.

Exemplo de uso

Entrada:

SELECT PERIOD_TO_TIME_UDF(PERIOD_UDF(CURRENT_TIME()));
Copy

Saída:

08:42:04
Copy

INSTR_UDF (STRING, STRING, DOUBLE, DOUBLE)

Aviso

Essa função definida pelo usuário (UDF) aceita quatro parâmetros de entrada.

Definição

Encontra todas as instâncias em que search_string aparece em source_string.

PUBLIC.INSTR_UDF(SOURCE_STRING STRING, SEARCH_STRING STRING, POSITION DOUBLE, OCCURRENCE DOUBLE)
Copy

Parâmetros

SOURCE_STRING representa a cadeia de caracteres de entrada que precisa ser processada

A cadeia de texto que será pesquisada.

SEARCH_STRING é um valor de texto que você deseja pesquisar.

O padrão de texto que a função procurará e corresponderá.

POSITION DOUBLE - Um tipo de dados numéricos que armazena números decimais com precisão dupla.

A posição no texto em que a pesquisa começará (a partir da posição 1).

OCCURRENCE DOUBLE - Um tipo de dados numéricos que representa o número de vezes que um evento ocorre, armazenado como um número de ponto flutuante de precisão dupla.

A posição no texto em que a pesquisa começará (a partir da posição 1).

Retornos

A posição do índice em que o texto especificado é encontrado na cadeia de caracteres de origem.

Exemplo de uso

Entrada:

SELECT INSTR_UDF('CHOOSE A CHOCOLATE CHIP COOKIE','CH',2,2);
Copy

Saída:

20
Copy

ROUND_DATE_UDF

Definição

Uma função definida pelo usuário (UDF) que processa um DATE_VALUE arredondando a parte do tempo para uma unidade especificada (UNIT_TO_ROUND_BY). Essa função é semelhante à função do Teradata ROUND(date).

PUBLIC.ROUND_DATE_UDF(DATE_TO_ROUND TIMESTAMP_LTZ, UNIT_TO_ROUND_BY VARCHAR(5))
Copy

Parâmetros

DATE_TO_ROUND TIMESTAMP_TZ (Um valor de carimbo de data/hora com informações de fuso horário que precisam ser arredondadas)

O valor da data que precisa ser arredondado.

UNIT_TO_ROUND_BY VARCHAR - Especifica a unidade de tempo usada para o arredondamento

A unidade de tempo usada para arredondar a data.

Retornos

Retorna uma data arredondada para a unidade de tempo especificada. O parâmetro UNIT_TO_ROUND_BY determina como a data será arredondada.

Exemplo de migração

Entrada:

SELECT ROUND(CURRENT_DATE, 'RM') RND_DATE
Copy

Saída:

SELECT
PUBLIC.ROUND_DATE_UDF(CURRENT_DATE(), 'RM') RND_DATE;
Copy

SUBSTR_UDF (STRING, FLOAT, FLOAT)

Aviso

Essa é a função definida pelo usuário (UDF) que aceita três parâmetros.

Definição

Recupera uma parte do texto de uma cadeia de caracteres especificada usando as posições inicial e final.

PUBLIC.SUBSTR_UDF(BASE_EXPRESSION STRING, START_POSITION FLOAT, LENGTH FLOAT)
Copy

Parâmetros

BASE_EXPRESSION é um parâmetro de cadeia de caracteres que define a expressão de base.

O texto de origem do qual você deseja extrair uma parte.

START_POSITION é um número de ponto flutuante que define a posição inicial.

A posição em que você deseja começar a extrair caracteres da cadeia de caracteres.

LENGTH é um número de ponto flutuante que representa o valor do comprimento.

A posição em que você deseja começar a extrair caracteres da cadeia de caracteres.

Retornos

A subcadeia de caracteres que deve ser incluída.

Exemplo de uso

Entrada:

SELECT 
    PUBLIC.SUBSTR_UDF('ABC', -1, 1),
    PUBLIC.SUBSTR_UDF('ABC', -1, 2),
    PUBLIC.SUBSTR_UDF('ABC', -1, 3),
    PUBLIC.SUBSTR_UDF('ABC', 0, 1),
    PUBLIC.SUBSTR_UDF('ABC', 0, 2);
Copy

Saída:

'','','A','','A'
Copy

GETQUERYBANDVALUE_UDF (VARCHAR)

Aviso

Essa é a função definida pelo usuário (UDF) que aceita um parâmetro.

Definição

Retorna um valor de um par nome-valor armazenado na transação, na sessão ou na banda de consulta de perfil.

GETQUERYBANDVALUE_UDF(SEARCHNAME VARCHAR)
Copy

Parâmetros

SEARCHNAME VARCHAR - Uma variável do tipo VARCHAR usada para armazenar termos ou nomes de pesquisa. - Uma variável do tipo VARCHAR usada para armazenar termos ou nomes de pesquisa.

O nome a ser pesquisado nos pares chave-valor.

Retornos

O valor-chave «name» da banda de consulta da sessão ou nulo se não estiver presente.

Exemplo de uso

Entrada:

ALTER SESSION SET QUERY_TAG = 'user=Tyrone;role=security';
SELECT GETQUERYBANDVALUE_UDF('role');
Copy

Saída:

security
Copy

Exemplo de migração

Entrada:

SELECT GETQUERYBANDVALUE(1, 'group');
Copy

Saída:

/** MSC-ERROR - MSCEWI2084 - TRANSACTION AND PROFILE LEVEL QUERY TAGS NOT SUPPORTED IN SNOWFLAKE, REFERENCING SESSION QUERY TAG INSTEAD **/
SELECT GETQUERYBANDVALUE_UDF('group');
Copy

TD_WEEK_OF_YEAR_UDF

Definição

Função definida pelo usuário (UDF) que calcula o número completo da semana de uma determinada data dentro do ano. Essa função oferece a mesma funcionalidade das funções TD_WEEK_OF_YEAR e WEEKNUMBER_OF_YEAR do Teradata.

PUBLIC.TD_WEEK_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

Data usada para calcular o número da semana.

Retornos

Um valor numérico que indica em qual semana do ano a data especificada se enquadra.

Exemplo de uso

Entrada:

SELECT PUBLIC.WEEK_OF_YEAR_UDF(DATE '2024-05-10'),
PUBLIC.WEEK_OF_YEAR_UDF(DATE '2020-01-03')
Copy

Saída:

18, 0
Copy

EXTRACT_TIMESTAMP_DIFFERENCE_UDF

Nota

Para facilitar a leitura, simplificamos os exemplos de código mostrando apenas as partes mais relevantes.

Definição

Recupera a parte “Data” do resultado da subtração de SUBTRAHEND do MINUEND

PUBLIC.EXTRACT_TIMESTAMP_DIFFERENCE_UDF
(MINUEND TIMESTAMP, SUBTRAHEND TIMESTAMP, INPUT_PART VARCHAR, EXTRACT_PART VARCHAR)
Copy

Diferenças entre a extração de data e hora do Teradata e do Snowflake

As funções do Teradata e do Snowflake podem ter requisitos de parâmetros diferentes e retornar tipos de dados diferentes.

  • Parâmetros: A principal diferença entre as funções EXTRACT do Teradata e do Snowflake é que o Snowflake trabalha apenas com datas e horas, enquanto o Teradata também suporta intervalos. Para obter mais detalhes, consulte a documentação da função EXTRACT do Snowflake e a documentação da função EXTRACT do Teradata.

  • Tipo de retorno: As funções retornam valores diferentes: A função EXTRACT do Teradata retorna um número inteiro ou decimal(8, 2), enquanto a função EXTRACT do Snowflake retorna um número que representa a parte de data e hora solicitada.

As funções do Teradata e do Snowflake podem ter diferentes parâmetros de entrada e tipos de saída.

Parâmetros

MINUEND TIMESTAMP

A data que está sendo usada como ponto de partida para a subtração.

SUBTRAHEND O valor do carimbo de data/hora a ser subtraído de outro carimbo de data/hora

A data foi removida.

INPUT_PART VARCHAR

O varchar formatado deve corresponder à parte original solicitada (que é a mesma que TIMESTAMP_DIFERENCE INPUT_PART) e deve ser um dos seguintes:

  • 'DAY TO HOUR'

  • 'DAY TO MINUTE'

  • 'DAY TO SECOND'

  • 'DAY TO MINUTE'

  • 'HOUR TO MINUTE'

  • 'HOUR TO SECOND'

  • 'MINUTE TO SECOND'

EXTRACT_PART é um tipo de dados VARCHAR que representa a parte extraída de uma cadeia de caracteres.

A unidade de tempo para extração deve ser um dos seguintes valores: 'DAY', 'HOUR', 'MINUTE' ou 'SECOND'. A unidade de tempo solicitada deve estar dentro do intervalo de tempo de entrada.

Retornos

O número de solicitações incluídas no processo de extração.

Exemplo

Entrada:

select extract(day from (timestampColumn1 - timestampColumn2 day to hour)) from tableName;
Copy

Saída:

SELECT
EXTRACT_TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'DAY TO HOUR', 'DAY')
from
tableName;
Copy

JSON_EXTRACT_DOT_NOTATION_UDF

Definição

Uma função definida pelo usuário (UDF) que permite consultar objetos JSON usando notação de ponto, semelhante à forma como o usuário acessaria propriedades aninhadas em JavaScript ou Python.

JSON_EXTRACT_DOT_NOTATION_UDF(JSON_OBJECT VARIANT, JSON_PATH STRING)
Copy

Diferenças entre o Teradata JSON Entity Reference (notação de ponto) e o método de consulta do Snowflake JSON.

O Teradata e o Snowflake usam métodos diferentes para percorrer dados JSON. O Teradata usa uma abordagem baseada em JavaScriptcom notação de ponto, indexação de matriz e operadores especiais, como acesso curinga e notação de ponto duplo. Por outro lado, o Snowflake tem recursos mais limitados de travessia JSON, suportando apenas acesso direto a membros e indexação de matriz.

Parâmetros

JSON_OBJECT Um tipo de dados que representa um objeto JSON, que pode conter pares chave-valor aninhados de tipos de dados variados.

O objeto JSON que contém os valores que você deseja extrair.

JSON_PATH Um parâmetro de cadeia de caracteres que especifica o caminho para extrair dados de um documento JSON

O local no JSON_OBJECT onde os valores podem ser encontrados, especificado usando a notação de caminho JSON.

Retornos

Os elementos de dados no JSON_OBJECT que correspondem ao JSON_PATH especificado.

Exemplo de migração

Entrada:

SELECT CAST(varcharColumn AS JSON(2000))..name FROM variantTest;
Copy

Saída:

SELECT
JSON_EXTRACT_DOT_NOTATION_UDF(CAST(varcharColumn AS VARIANT), '$..name')
FROM
variantTest;
Copy

WEEK_OF_MONTH_UDF

Definição

Calcula em qual semana do mês uma data específica se enquadra.

PUBLIC.WEEK_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data usada para determinar em qual semana do mês ela se enquadra.

Retornos

Uma coluna VARCHAR que exibe em qual semana do mês uma data específica se enquadra.

Exemplo de uso

Entrada:

SELECT PUBLIC.WEEK_OF_MONTH_UDF(DATE '2021-10-26');
Copy

Saída:

'4'
Copy

DAYNAME_LONG_UDF (TIMESTAMP_TZ)

Aviso

Essa é a função definida pelo usuário (UDF) que aceita um parâmetro.

Definição

UDF que cria uma variante da função DAYNAME_LONG_UDF que retorna os nomes dos dias com a primeira letra em maiúscula (formato padrão).

PUBLIC.DAYNAME_LONG_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data da qual você deseja obter o dia da semana.

Retornos

Retorna uma cadeia de caracteres que contém o nome completo de um dia da semana.

Exemplo de uso

Entrada:

SELECT PUBLIC.DAYNAME_LONG_UDF(DATE '2022-06-30');
Copy

Saída:

'Thursday'
Copy

INTERVAL_TO_MONTHS_UDF

Definição

Converte um intervalo de tempo em meses.

PUBLIC.INTERVAL_TO_MONTHS_UDF
(INPUT_VALUE VARCHAR())
Copy

Parâmetros

INPUT_VALUE VARCHAR

O período de tempo que será transformado em meses.

Retornos

O número de meses a serem processados, especificado como um número inteiro.

GETQUERYBANDVALUE_UDF (VARCHAR, FLOAT, VARCHAR)

Aviso

Essa função definida pelo usuário (UDF) aceita três parâmetros.

Definição

Retorna um valor de um par nome-valor armazenado na transação, na sessão ou na banda de consulta de perfil. O valor está associado a um nome específico na banda de consulta.

GETQUERYBANDVALUE_UDF(QUERYBAND VARCHAR, SEARCHTYPE FLOAT, SEARCHNAME VARCHAR)
Copy

Parâmetros

QUERYBAND é um tipo de dados VARCHAR que armazena informações sobre a banda de consulta.

A banda de consulta combina as bandas de consulta de transação, sessão e perfil em uma única cadeia de caracteres.

SEARCHTYPE é um tipo de dados de número de ponto flutuante.

A profundidade máxima na qual os pares correspondentes serão pesquisados.

0 representa um valor curinga que corresponde a qualquer entrada.

Uma transação representa uma única unidade de trabalho em um banco de dados.

Um objeto Session representa uma conexão com o Snowflake.

3 = Criar um perfil.

SEARCHNAME VARCHAR

O nome a ser pesquisado nos pares chave-valor.

Retornos

Retorna o valor da chave “name” no nível especificado na hierarquia. Se nenhum valor for encontrado, retorna null.

Exemplo de uso

Entrada:

SELECT GETQUERYBANDVALUE_UDF('=T> account=Matt;user=Matt200; =S> account=SaraDB;user=Sara;role=DbAdmin;', 0, 'account');
SELECT GETQUERYBANDVALUE_UDF('=T> account=Matt;user=Matt200; =S> account=SaraDB;user=Sara;role=DbAdmin;', 2, 'account');
SELECT GETQUERYBANDVALUE_UDF('=T> account=Matt;user=Matt200; =S> account=SaraDB;user=Sara;role=DbAdmin;', 0, 'role');
SELECT GETQUERYBANDVALUE_UDF('=T> account=Matt;user=Matt200; =S> account=SaraDB;user=Sara;role=DbAdmin;', 1, 'role');
Copy

Saída:

      Matt
      SaraDB
      DbAdmin
      NULL
Copy

Exemplo de migração

Entrada:

SELECT GETQUERYBANDVALUE('=T> account=Matt;user=Matt200; =S> account=SaraDB;user=Sara;role=DbAdmin;', 0, 'account')
Copy

Saída:

WITH
--** MSC-WARNING - MSCEWI2078 - THE EXPAND ON CLAUSE FUNCTIONALITY IS TRANSFORMED INTO A CTE BLOCK **
ExpandOnCTE AS
(
SELECT
PUBLIC.EXPAND_ON_UDF('ANCHOR_SECOND', VALUE, duration) bg
FROM
project,
TABLE(FLATTEN(PUBLIC.ROW_COUNT_UDF(PUBLIC.DIFF_TIME_PERIOD_UDF('ANCHOR_SECOND', duration))))
)
SELECT NORMALIZE emp_id,
duration
FROM
project,
ExpandOnCTE;
Copy

JULIAN_DAY_UDF

Definição

Calcula o número do dia juliano, que representa a contagem contínua de dias desde 1º de janeiro de 4713 BCE (Antes da Era Comum). O dia juliano é usado em cálculos de astronomia e calendário.

PUBLIC.JULIAN_DAY_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data que será convertida em um número de dia juliano.

Retornos

Um valor varchar que representa a data juliana calculada.

Exemplo de uso

Entrada:

SELECT PUBLIC.JULIAN_DAY_UDF(DATE '2021-10-26');
Copy

Saída:

'2459514'
Copy

WEEKNUMBER_OF_MONTH_UDF

Definição

Identificar o mês a partir de uma determinada data.

PUBLIC.WEEKNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data a partir da qual se calcula o número do mês.

Retornos

Um valor numérico que representa o mês (1-12) de uma determinada data.

Exemplo de uso

Entrada:

SELECT PUBLIC.WEEKNUMBER_OF_MONTH_UDF(DATE '2022-05-21')
Copy

Saída:

3
Copy

JSON_EXTRACT_UDF

Definição

Uma função definida pelo usuário (UDF) que imita o comportamento das funções JSONExtract, JSONExtractValue e JSONExtractLargeValue. Este UDF permite que você extraia vários valores de um objeto JSON.

JSON_EXTRACT_UDF(JSON_OBJECT VARIANT, JSON_PATH STRING, SINGLE_VALUE BOOLEAN)
Copy

Parâmetros

JSON_OBJECT é um tipo de dados que armazena dados formatados em JSONem um formato estruturado.

O objeto JSON que contém os valores que você deseja extrair.

JSON_PATH Uma cadeia de caracteres que especifica o caminho para extrair dados de um documento JSON

O local no JSON_OBJECT onde os valores desejados podem ser encontrados, especificado usando a notação de caminho JSON.

SINGLE_VALUE Um sinalizador booliano que indica se você deve retornar um único valor ou vários valores.

Parâmetro BOOLEAN: Quando definido como true, retorna um único valor (necessário para as funções JSONExtractValue e JSONExtractLargeValue). Quando definido como false, retorna uma matriz de valores (usado com JSONExtract).

Retornos

Os valores de dados encontrados no caminho JSON especificado no objeto JSON.

Exemplo de migração

Entrada:

SELECT
    Store.JSONExtract('$..author') as AllAuthors
FROM BookStores;
Copy

Saída:

SELECT
    JSON_EXTRACT_UDF(Store, '$..author', FALSE) as AllAuthors
    FROM
    BookStores;
Copy

COMPUTE_EXPAND_ON_UDF

Definição

Determina como expandir os dados com base no tipo de período de tempo especificado.

PUBLIC.COMPUTE_EXPAND_ON_UDF(TIME STRING, SEQ NUMBER, PERIOD TIMESTAMP, PERIODTYPE STRING)
Copy

Parâmetros

TIME STRING

O carimbo de data/hora usado na âncora.

Número de sequência SEQ

A ordem em que os cálculos de cada linha são realizados.

PERIOD representa um valor de carimbo de data/hora que indica um ponto específico no tempo.

A data para o período de tempo especificado.

PERIODTYPE é um valor de cadeia de caracteres que define o tipo de período de tempo.

O período de tempo usado para o cálculo (seja “BEGIN” ou “END”)

Retornos

Um carimbo de data/hora indicando quando cada linha da operação EXPAND-ON foi processada.

Exemplo

Aviso

Esta UDF é uma função derivada que amplia a funcionalidade de EXPAND_ON_UDF.

WEEK_NUMBER_OF_QUARTER_UDF

Definição

Retorna o número da semana dentro do trimestre atual para uma data especificada. Essa função segue o mesmo comportamento da função WEEKNUMBER_OF_QUARTER(DATE, 'ISO') do Teradata, usando o sistema de calendário ISO.

PUBLIC.WEEK_NUMBER_OF_QUARTER_UDF(INPUT TIMESTAMP_TZ)
Copy

Parâmetros

INPUT TIMESTAMP_TZ

A data usada para calcular em qual semana do trimestre ela se enquadra.

Retornos

Um número inteiro que indica a semana do trimestre (1-13) que está sendo referenciada.

Exemplo de uso

Entrada:

SELECT WEEK_NUMBER_OF_QUARTER_UDF(DATE '2023-01-01'),
WEEK_NUMBER_OF_QUARTER_UDF(DATE '2022-10-27')
Copy

Saída:

1, 4
Copy

YEAR_END_ISO_UDF

Definição

Função definida pelo usuário (UDF) que calcula o último dia do ano para uma determinada data usando os padrões do calendário ISO, semelhante à função TD_YEAR_END do Teradata.

PUBLIC.YEAR_END_ISO_UDF(INPUT date)
Copy

Parâmetros

INPUT DATE

A data que representa o último dia do ano de acordo com o padrão do calendário ISO.

Retornos

O último dia do ano de acordo com o sistema de calendário ISO.

Exemplo de uso

Entrada:

SELECT  PUBLIC.YEAR_END_ISO_UDF(DATE '2022-01-01'),
PUBLIC.YEAR_END_ISO_UDF(DATE '2022-04-12');
Copy

Saída:

2022-01-02, 2023-01-01
Copy

INSERT_CURRENCY_UDF

Definição

Insira o símbolo de moeda diretamente antes do primeiro dígito do número para garantir que não haja espaços ou símbolos entre o símbolo de moeda e o número.

PUBLIC.INSERT_CURRENCY_UDF(INPUT VARCHAR, CURRENCYINDEX INTEGER, CURRENCYVALUE VARCHAR)
Copy

Parâmetros

INPUT VARCHAR

A saída de TO_CHAR ao converter um valor numérico que requer formatação de moeda.

CURRENCYINDEX é um valor inteiro que representa o índice de uma moeda.

A posição na matriz em que a moeda deve ser inserida.

CURRENCYVALUE Um campo VARCHAR que armazena valores monetários

O texto que será usado como o valor da moeda.

Retornos

Um campo varchar que contém o texto da moeda em uma posição definida.

Exemplo de uso

Entrada:

SELECT PUBLIC.INSERT_CURRENCY_UDF(to_char(823, 'S999999'), '1', 'CRC');
Copy

Saída:

'+CRC823'
Copy

INSTR_UDF (STRING, STRING, INT)

Aviso

Essa função definida pelo usuário (UDF) aceita três parâmetros.

Definição

Encontra todas as instâncias em que search_string aparece em source_string.

PUBLIC.INSTR_UDF(SOURCE_STRING STRING, SEARCH_STRING STRING, POSITION INT)
Copy

Parâmetros

SOURCE_STRING representa um valor de cadeia de caracteres que será usado como entrada

O texto que será pesquisado.

SEARCH_STRING é um valor de texto que você deseja pesquisar.

O padrão de texto que a função procurará e corresponderá.

POSITION é um tipo de dados inteiro que representa uma posição em uma sequência.

A posição no texto em que a pesquisa começa (a partir da posição 1).

Retornos

O local na cadeia de caracteres original onde a correspondência é encontrada.

Exemplo de uso

Entrada:

SELECT INSTR_UDF('FUNCTION','N', 3);
Copy

Saída:

8
Copy