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)
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');
Saída:
4, 1
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)
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');
Saída:
SELECT
PUBLIC.DAYNUMBER_OF_YEAR_UDF(CURRENT_DATE());
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)
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);
Saída:
SELECT
PUBLIC.SUBSTR_UDF('Hello World!', -2);
CHKNUM_UDF¶
Definição¶
Verifica se uma cadeia de caracteres contém um valor numérico válido.
PUBLIC.CHKNUM_UDF(NUM STRING);
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');
Saída:
SELECT
PUBLIC.CHKNUM_UDF('1032');
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)
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');
Saída:
2022-12-31, 2022-12-31
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)
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');
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 ***/!!!;
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)
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')
Saída:
5, 1
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)
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');
Saída:
'X'
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)
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');
Saída:
2022-01-01, 2022-01-01
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)
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');
Saída:
OCTOBER
october
October
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)
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');
Saída:
01c0
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)
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');
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 ***/!!!;
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())
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)
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)
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;
Saída:
SELECT
PUBLIC.INTERVAL_MULTIPLY_UDF('YEAR TO MONTH', '6-10', 8);
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)
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');
Saída:
SELECT
PUBLIC.TD_DAY_OF_WEEK_UDF(DATE '2022-03-02');
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)
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);
Saída:
'021'
'21'
'1'
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))
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');
Saída:
5
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)
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')
Saída:
SELECT
PUBLIC.SUBSTR_UDF('Hello World!', -2);
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)
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);
Saída:
orange chicken
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)
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');
Saída:
OCT
oct
Oct
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)
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;
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;
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)
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');
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
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)
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');
Saída:
'TUESDAY'
'tuesday'
'Tuesday'
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)
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');
Saída:
1, 6
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)
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')
Saída:
0.770000
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)
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');
Saída:
2021-01-04, 2022-01-03
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)
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);
Saída:
'021'
'21'
'1'
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)
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');
Saída:
'2,021'
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)
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');
Saída:
12
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)
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');
Saída:
'37845'
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);
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;
Saída:
SELECT
PUBLIC.CHAR2HEXINT_UDF('1234') from
t1;
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())
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;
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;
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)
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)
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')
Saída:
SELECT
PUBLIC.TD_WEEK_OF_CALENDAR_UDF(DATE '2023-11-30');
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)
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');
Saída:
'8456'
'<8456>'
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)
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');
Saída:
2
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)
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');
Saída:
0
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)
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;
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;
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)
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'));
Saída:
[1, 2, 3, 4, 5]
Exemplo de migração¶
Entrada:
SELECT NORMALIZE emp_id, duration FROM project EXPAND ON duration AS bg BY ANCHOR ANCHOR_SECOND;
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;
CENTURY_UDF¶
Definição¶
Calcula o século para uma determinada data.
PUBLIC.CENTURY_UDF(INPUT TIMESTAMP_TZ)
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');
Saída:
'20'
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)
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;
Saída:
SELECT
EXTRACT_TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'DAY TO HOUR', 'DAY')
from
tableName;
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)
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;
Saída:
SELECT
PUBLIC.INTERVAL_DIVIDE_UDF('YEAR TO MONTH', '6-10', 8);
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)
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');
Saída:
SELECT
PUBLIC.DAYNUMBER_OF_MONTH_UDF(DATE'2022-12-22');
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)
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');
Saída:
2021-12-31
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)
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;
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;
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))
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');
Saída:
'2022-02-14'
Exemplo de migração¶
Entrada:
SELECT TO_DATE('2020002', 'YYYYDDD');
Saída:
SELECT
PUBLIC.JULIAN_TO_DATE_UDF('2020002');
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)
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');
Saída:
2021-01-01
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)
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.
Sintaxe: No Teradata, a subtração DATE, TIMESTAMP e TIME usa um sinal de menos e um intervalo para especificar o formato do resultado. Para obter mais detalhes, consulte https://docs.teradata.com/r/w19R4KsuHIiEqyxz0WYfgA/7kLLsWrP0kHxbk3iida0mA. O Snowflake lida com essas operações de forma diferente usando três funções:
DATEDIFF (funciona com todos os tipos de data)
TIMESTAMPDIFF
TIMEDIFF Cada função requer as duas datas a serem comparadas e a parte da data a ser retornada. Para os tipos DATE, você também pode usar o sinal de menos, que retorna a diferença em dias.
Tipo de retorno: O Teradata retorna vários tipos de intervalo (consulte https://www.docs.teradata.com/r/T5QsmcznbJo1bHmZT2KnFw/z~5iW7rYVstcmNYbd6Dsjg). As funções do Snowflake retornam um número inteiro que representa o número de unidades. Para obter detalhes, consulte https://docs.snowflake.com/en/sql-reference/functions/datediff.html
Arredondamento: A maneira como DATEDIFF lida com partes de datas pode produzir resultados diferentes dos do Teradata. Consulte https://docs.snowflake.com/en/sql-reference/functions/datediff.html#usage-notes para obter informações sobre o comportamento específico de arredondamento.
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;
SELECT
(
PUBLIC.TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'YEAR')) from
tableName;
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)
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)
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
Saída:
SELECT
* FROM
table1
WHERE date_column > PUBLIC.INT_TO_DATE_UDF( 1011219);
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)
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);
Saída:
NULL
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)
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');
Saída:
'Tuesday, October 26, 2021'
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)
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')
Saída:
SELECT
PUBLIC.TD_MONTH_OF_CALENDAR_UDF(DATE '2023-11-30');
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)
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)
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)
Saída:
SELECT
PUBLIC.TD_DAY_OF_CALENDAR_UDF(CURRENT_DATE());
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))
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()));
Saída:
08:42:04
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)
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);
Saída:
20
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))
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
Saída:
SELECT
PUBLIC.ROUND_DATE_UDF(CURRENT_DATE(), 'RM') RND_DATE;
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)
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);
Saída:
'','','A','','A'
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)
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');
Saída:
security
Exemplo de migração¶
Entrada:
SELECT GETQUERYBANDVALUE(1, 'group');
Saída:
/** MSC-ERROR - MSCEWI2084 - TRANSACTION AND PROFILE LEVEL QUERY TAGS NOT SUPPORTED IN SNOWFLAKE, REFERENCING SESSION QUERY TAG INSTEAD **/
SELECT GETQUERYBANDVALUE_UDF('group');
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)
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')
Saída:
18, 0
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)
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;
Saída:
SELECT
EXTRACT_TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'DAY TO HOUR', 'DAY')
from
tableName;
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)
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;
Saída:
SELECT
JSON_EXTRACT_DOT_NOTATION_UDF(CAST(varcharColumn AS VARIANT), '$..name')
FROM
variantTest;
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)
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');
Saída:
'4'
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)
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');
Saída:
'Thursday'
INTERVAL_TO_MONTHS_UDF¶
Definição¶
Converte um intervalo de tempo em meses.
PUBLIC.INTERVAL_TO_MONTHS_UDF
(INPUT_VALUE VARCHAR())
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)
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');
Saída:
Matt
SaraDB
DbAdmin
NULL
Exemplo de migração¶
Entrada:
SELECT GETQUERYBANDVALUE('=T> account=Matt;user=Matt200; =S> account=SaraDB;user=Sara;role=DbAdmin;', 0, 'account')
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;
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)
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');
Saída:
'2459514'
WEEKNUMBER_OF_MONTH_UDF¶
Definição¶
Identificar o mês a partir de uma determinada data.
PUBLIC.WEEKNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
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')
Saída:
3
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)
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;
Saída:
SELECT
JSON_EXTRACT_UDF(Store, '$..author', FALSE) as AllAuthors
FROM
BookStores;
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)
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)
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')
Saída:
1, 4
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)
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');
Saída:
2022-01-02, 2023-01-01
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)
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');
Saída:
'+CRC823'
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)
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);
Saída:
8