SnowConvert : références de fonctions pour Teradata

QUARTERNUMBER_OF_YEAR_UDF

Définition

UDF (fonction définie par l’utilisateur) qui calcule le numéro de trimestre d’une date donnée en fonction de l’année civile ISO, à l’instar de la fonction QUARTERNUMBER_OF_YEAR_UDF(date, “ISO”) de Teradata.

PUBLIC.QUARTERNUMBER_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT DuréeSTAMP_TZ

La méthode pour extraire le numéro de trimestre.

Renvoie

Un entier (1-4) indiquant dans quel trimestre de l’année se situe la date.

Exemple d’utilisation

Entrée :

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

Sortie :

4, 1
Copy

DAYNUMBER_OF_YEAR_UDF

Définition

Renvoie le numéro du jour dans l’année pour un horodatage donné. Le numéro du jour est compris entre 1 et 365 (ou 366 pour les années bissextiles). Cette fonction se comporte de la même manière que DAYNUMBER_OF_YEAR(DATE, “ISO”).

PUBLIC.DAYNUMBER_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

Pour obtenir le numéro du jour de l’année à partir d’une date.

Renvoie

Un nombre entier de 1 à 371.

Exemple

Entrée :

SELECT DAYNUMBER_OF_YEAR(CURRENT_DATE,'ISO');
Copy

Sortie :

SELECT
PUBLIC.DAYNUMBER_OF_YEAR_UDF(CURRENT_DATE());
Copy

SUBSTR_UDF (STRING, FLOAT)

Avertissement

Cette fonction définie par l’utilisateur (UDF) accepte deux paramètres (fonction surchargée).

Définition

Récupère une partie de texte à partir d’une chaîne spécifiée en utilisant une position de départ et une longueur.

PUBLIC.SUBSTR_UDF(BASE_EXPRESSION STRING, START_POSITION FLOAT)
Copy

Paramètres

BASE_EXPRESSION est un paramètre de type chaîne qui définit l’expression de base de l’opération.

Le texte source dont vous voulez extraire une partie.

START_POSITION - Un nombre à virgule flottante qui spécifie la position de départ dans la chaîne d’entrée.

La position à laquelle vous souhaitez commencer à extraire les caractères de la chaîne.

Renvoie

La sous-chaîne qui doit être incluse.

Exemple de migration

Entrée :

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

Sortie :

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

CHKNUM_UDF

Définition

Vérifiez si une chaîne contient une valeur numérique valide.

PUBLIC.CHKNUM_UDF(NUM STRING);
Copy

Paramètres

NUM Une chaîne représentant un nombre

La chaîne de texte qui doit être validée.

Renvoie

Renvoie 1 si le paramètre d’entrée est une valeur numérique valide. Si l’entrée n’est pas un nombre valide (par exemple, du texte ou des caractères spéciaux), le système renvoie 0.

Exemple

SELECT CHKNUM('1032');
Copy

Sortie :

SELECT
PUBLIC.CHKNUM_UDF('1032');
Copy

TD_YEAR_END_UDF

Définition

UDF (User-Defined Function - Fonction définie par l’utilisateur) qui réplique la fonction de Teradata TD_YEAR_END(DATE) ou TD_YEAR_END(DATE, “COMPATIBLE”), qui renvoie le dernier jour de l’année pour une date donnée.

PUBLIC.TD_YEAR_END_UDF(INPUT date)
Copy

Paramètres

INPUT DATE

Obtenez le dernier jour de l’année en cours.

Renvoie

Le dernier jour de décembre (31 décembre).

Exemple d’utilisation

Entrée :

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

Sortie :

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

PERIOD_OVERLAPS_UDF

Définition

Une fonction définie par l’utilisateur (UDF) qui met en œuvre la fonctionnalité OVERLAPS OPERATOR. Cette fonction compare deux ou plusieurs périodes et détermine si elles se chevauchent.

PERIOD_OVERLAPS_UDF(PERIODS ARRAY)
Copy

Paramètres

PERIODS est un tableau qui contient des périodes de temps

Toutes les expressions de période qui seront comparées.

Renvoie

TRUE si toutes les périodes de l’ensemble ont au moins un point commun (chevauchement), FALSE sinon.

Exemple de migration

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

Sortie :

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

Définition

Calcule le numéro de semaine du trimestre en cours dans lequel se situe la date spécifiée.

PUBLIC.WEEK_NUMBER_OF_QUARTER_COMPATIBLE_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date utilisée pour calculer la semaine du trimestre dans laquelle il se situe.

Renvoie

Un entier indiquant la semaine du trimestre dans laquelle se situe la date (1-13).

Exemple d’utilisation

Entrée :

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

Sortie :

5, 1
Copy

ROMAN_NUMERALS_MONTH_UDF

Définition

Convertit une date en son mois correspondant en chiffres romains.

PUBLIC.ROMAN_NUMERALS_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date d’entrée à partir de laquelle le mois doit être extrait.

Renvoie

Un varchar représentant le mois extrait d’une date donnée.

Exemple d’utilisation

Entrée :

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

Sortie :

'X'
Copy

TD_YEAR_BEGIN_UDF

Définition

Une fonction définie par l’utilisateur (UDF) qui imite le comportement de TD_YEAR_BEGIN ou TD_YEAR_BEGIN(DATE, “COMPATIBLE”) en renvoyant le premier jour de l’année pour une date donnée.

PUBLIC.TD_YEAR_BEGIN_UDF(INPUT DATE)
Copy

Paramètres

INPUT DATE

Obtenez le premier jour de l’année en cours.

Renvoie

Le premier jour de janvier.

Exemple d’utilisation

Entrée :

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

Sortie :

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

FULL_MONTH_NAME_UDF

Définition

Renvoie le nom complet d’un mois dans le format de votre choix : tout en majuscules, tout en minuscules ou avec seulement la première lettre en majuscule.

PUBLIC.FULL_MONTH_NAME_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

Paramètres

INPUT TIMESTAMP_TZ

Le format de la date doit afficher le nom du mois.

RESULTCASE VARCHAR

Le format dans lequel le résultat doit être affiché. Les options valables sont « majuscules », « minuscules » ou « majuscules ».

Renvoie

Retourne un varchar contenant le nom complet d’un mois

Exemple d’utilisation

Entrée :

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

Sortie :

OCTOBER
october
October
Copy

TO_BYTES_HEX_UDF

Définition

Convertit un nombre décimal (base 10) en sa représentation hexadécimale (base 16).

TO_BYTES_HEX_UDF(INPUT FLOAT)
Copy

Paramètres

INPUT est un paramètre de type nombre à virgule flottante.

Le nombre qui sera converti au format hexadécimal.

Renvoie

Une chaîne représentant la valeur hexadécimale.

Exemple d’utilisation

Entrée :

SELECT TO_BYTES_HEX_UDF('448');
Copy

Sortie :

01c0
Copy

PERIOD_INTERSECT_UDF

Définition

Une fonction définie par l’utilisateur (UDF) qui réplique l’opérateur P_INTERSECT. Cette fonction compare deux périodes ou plus et identifie les endroits où elles se chevauchent, en renvoyant l’intervalle de temps commun entre elles.

Pour plus de détails sur la fonction source, veuillez vous référer à la documentation.

PERIOD_INTERSECT_UDF(PERIODS ARRAY)
Copy

Paramètres

PERIODS est un tableau qui contient des périodes de temps.

Toutes les expressions de période qui doivent être comparées.

Renvoie

La section où deux périodes se croisent ou partagent des dates communes.

Exemple de migration

Entrée :

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

Sortie :

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

Définition

Convertit un intervalle de temps en secondes.

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

Paramètres

INPUT_PART est une variable de type VARCHAR qui stocke les données d’entrée.

La durée qui sera convertie en secondes.

INPUT_VALUE VARCHAR - Le paramètre d’entrée qui accepte les données textuelles. - Le paramètre d’entrée qui accepte les données textuelles.

Le type d’intervalle de temps pour la conversion. Les exemples incluent “DAY”, “DAY TO HOUR” et d’autres types d’intervalles valides.

Renvoie

Un nombre décimal représentant l’intervalle de temps en secondes.

TIMESTAMP_ADD_UDF

Définition

Combine deux horodatages en une seule valeur.

PUBLIC.TIMESTAMP_ADD_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
Copy

Paramètres

FIRST_DATE est un champ d’horodatage qui comprend à la fois des informations sur la date et l’heure, avec prise en charge des fuseaux horaires (TIMESTAMP_LTZ)

Date initiale d’ajout.

SECOND_DATE est une colonne d’horodatage qui comprend des informations sur le fuseau horaire (TIMESTAMP_LTZ) (horodatage avec fuseau horaire local)

Date à laquelle l’élément a été ajouté pour la deuxième fois.

Renvoie

Un horodatage généré en combinant les paramètres de date d’entrée.

INTERVAL_MULTIPLY_UDF

Définition

Une fonction définie par l’utilisateur (UDF) qui effectue des opérations de multiplication sur des intervalles de temps.

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

Paramètres

INPUT_PART est une variable de type VARCHAR qui stocke les données d’entrée.

La valeur utilisée pour la multiplication, spécifiée comme “YEAR TO MONTH”.

INPUT_VALUE VARCHAR

L’intervalle à multiplier.

INPUT_MULT est un paramètre entier qui sert de multiplicateur pour les valeurs d’entrée.

Le nombre qui sera utilisé dans l’opération de multiplication.

Renvoie

La sortie est calculée en multipliant un intervalle de temps par une valeur numérique.

Exemple de migration

Entrée :

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

Sortie :

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

TD_DAY_OF_WEEK_UDF

Définition

Fonction définie par l’utilisateur (UDF) qui réplique la fonctionnalité TD_DAY_OF_WEEK de Teradata. Pour plus de détails sur la fonction originale de Teradata, voir ici.

PUBLIC.TD_DAY_OF_WEEK_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

Date à partir de laquelle on obtient le jour de la semaine.

Renvoie

Un entier de 1 à 7 représentant le jour de la semaine, où :

  • 1 = dimanche

  • 2 = lundi

  • 3 = mardi

  • 4 = mercredi

  • 5 = jeudi

  • 6 = vendredi

  • 7 = samedi

Exemple de migration

Entrée :

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

Sortie :

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

ISO_YEAR_PART_UDF

Définition

Calcule l’année civile ISO à partir d’une date donnée. Le résultat peut être raccourci en spécifiant le nombre de chiffres à conserver.

PUBLIC.ISO_YEAR_PART_UDF(INPUT TIMESTAMP_TZ, DIGITS INTEGER)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date à partir de laquelle il faut extraire l’année ISO.

DIGITS Un nombre entier qui représente le nombre maximum de chiffres à afficher

Le nombre de décimales souhaitées dans la sortie.

Renvoie

Renvoie une chaîne (varchar) représentant l’année ISO d’une date donnée.

Exemple d’utilisation

Entrée :

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

Sortie :

'021'
'21'
'1'
Copy

DIFF_TIME_PERIOD_UDF

Définition

Calcule l’intervalle de temps entre deux dates en fonction du paramètre d’unité de temps spécifié.

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

Paramètres

TIME est un type de données utilisé pour stocker des valeurs temporelles en heures, minutes, secondes et fractions de secondes. Est un type de données qui représente une valeur temporelle stockée sous forme de chaîne de texte.

L’horodatage qui sera utilisé comme point d’ancrage.

PERIOD Un champ de texte (VARCHAR) qui représente une période

La colonne de période utilisée pour l’expansion.

Renvoie

Valeur numérique indiquant l’intervalle de temps entre deux dates.

Exemple d’utilisation

Entrée :

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

Sortie :

5
Copy

WEEK_NUMBER_OF_QUARTER_ISO_UDF

Définition

Calcule le numéro de semaine d’une date au sein de son trimestre, en utilisant les normes du calendrier ISO. Cette fonction se comporte de la même manière que la fonction Teradata WEEKNUMBER_OF_QUARTER(DATE, 'ISO').

PUBLIC.WEEK_NUMBER_OF_QUARTER_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date utilisée pour calculer la semaine du trimestre dans laquelle il se situe.

Renvoie

Un entier indiquant la semaine du trimestre (1-13) qu’il représente.

Exemple d’utilisation

Entrée :

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

Sortie :

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

NVP_UDF

Définition

Assure la même fonction que la fonctionNVP Teradata.

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

Paramètres

INSTRING VARCHAR

Les paires nom-valeur sont des éléments de données constitués d’un nom et de sa valeur correspondante.

NAME_TO_SEARCH de type VARCHAR

Le paramètre de nom utilisé pour la recherche dans la fonction Paire Nom-Valeur (NVP).

NAME_DELIMITERS VARCHAR

Le caractère utilisé pour séparer les noms des valeurs correspondantes.

VALUE_DELIMITERS VARCHAR

Le caractère utilisé pour connecter un nom à sa valeur correspondante.

OCCURRENCE représente un nombre à virgule flottante qui indique le nombre de fois qu’un phénomène se produit

Le nombre de modèles correspondants à rechercher.

Renvoie

Une chaîne de texte (VARCHAR) contenant des données identiques à celles de la chaîne d’entrée.

Exemple d’utilisation

Entrée :

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

Sortie :

orange chicken
Copy

MONTH_SHORT_UDF

Définition

Renvoie le nom abrégé d’un mois (trois lettres) dans le format de votre choix (majuscules, minuscules ou capitales). Par exemple, « Jan », « jan » ou « JAN ».

PUBLIC.MONTH_SHORT_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date formatée pour afficher le nom abrégé du mois.

RESULTCASE VARCHAR

Le format de casse des lettres à utiliser. Les options valides sont :

  • « uppercase » : convertit le texte en lettres majuscules

  • « minuscule » : convertit le texte en lettres minuscules

  • « firstOnly » : ne met en majuscule que la première lettre

Renvoie

Un varchar contenant le nom abrégé d’un mois (par exemple, « Jan », « Fév », etc.).

Exemple d’utilisation

Entrée :

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

Sortie :

OCT
oct
Oct
Copy

DATE_TO_INT_UDF

Définition

UDF (fonction définie par l’utilisateur) qui convertit une valeur de date en sa représentation numérique, similaire à la fonction DATE-TO-NUMERIC de Teradata.

PUBLIC.DATE_TO_INT_UDF(DATE_TO_CONVERT DATE)
Copy

Paramètres

DATE_TO_CONVERT représente une valeur de date qui doit être convertie

Convertissez la valeur de la date au format entier.

Renvoie

Renvoie une valeur de retour au format numérique.

Exemple

Entrée :

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

Sortie :

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

Définition

Une fonction définie par l’utilisateur (UDF) qui réplique l’opérateur P_INTERSECT. Cette fonction compare deux périodes ou plus et identifie les endroits où elles se chevauchent, en renvoyant l’intervalle de temps commun entre elles.

Crée une représentation sous forme de chaîne des valeurs de début et de fin d’une période (pour TIMESTAMP qui représente un type de données qui stocke à la fois des informations de date et d’heure, TIME ou DATE qui est un type de données utilisé pour stocker des dates calendaires (année, mois et jour) sans informations de temps. types de données). Cette fonction émule la fonction de construction de la valeur de la période de Teradata. La chaîne de sortie suit le format par défaut de Snowflake pour les valeurs PERIOD. Pour ajuster la précision de la sortie, vous pouvez soit :

  • Modifier le paramètre de session timestamp_output_format

  • Utiliser la version à trois paramètres de cet UDF

Vous trouverez plus de détails sur la fonction source dans la documentation de 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

Paramètres

TIMESTAMP

Le type de données TimeStamp représente un point précis dans le temps, comprenant à la fois la date et l’heure.

TIME

Le type de données Temps représente une heure spécifique de la journée sans composante de date.

DATE

Le type de données Date représente une date calendaire sans composante temporelle.

PRECISIONDIGITS spécifie le nombre de décimales à afficher dans les valeurs numériques.

Le nombre de chiffres à afficher dans le format de l’heure.

Renvoie

Renvoie une représentation sous forme de chaîne d’une valeur de type PERIOD

Exemple d’utilisation

Entrée :

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

Sortie :

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)

Avertissement

Il s’agit de la fonction définie par l’utilisateur (UDF) qui accepte deux types de paramètres différents.

Définition

Renvoie le nom complet d’un jour de la semaine dans le format de votre choix (majuscules ou majuscules) (par exemple, « MONDAY », « monday » ou « Monday »).

PUBLIC.DAYNAME_LONG_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date d’entrée à partir de laquelle le jour de la semaine est déterminé.

RESULTCASE VARCHAR

Le résultat attendu ou le scénario qui sera démontré.

Renvoie

Renvoie une chaîne contenant le nom complet d’un jour de la semaine.

Exemple d’utilisation

Entrée :

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

Sortie :

'TUESDAY'
'tuesday'
'Tuesday'
Copy

TD_DAY_OF_WEEK_COMPATIBLE_UDF

Définition

Traitez un horodatage pour déterminer le jour de la semaine où il tombe. Cette fonction se comporte de manière identique à DAYNUMBER_OF_WEEK(DATE, 'COMPATIBLE').

PUBLIC.TD_DAY_OF_WEEK_COMPATIBLE_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date d’entrée utilisée pour déterminer le jour de la semaine.

Renvoie

Renvoie un nombre de 1 à 7 représentant le jour de la semaine, où 1 représente le premier jour de la semaine. Par exemple, si le 1er janvier tombe un mercredi, mercredi = 1, jeudi = 2, vendredi = 3, samedi = 4, dimanche = 5, lundi = 6 et mardi = 7.

Exemple d’utilisation

Entrée :

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

Sortie :

1, 6
Copy

JAROWINKLER_UDF

Définition

Calcule la similarité de deux chaînes à l’aide de l’algorithme de Jaro-Winkler. Cet algorithme donne un score entre 0 (complètement différent) et 1 (identique).

PUBLIC.JAROWINKLER_UDF (string1 VARCHAR, string2 VARCHAR)
Copy

Paramètres

string1 de type VARCHAR

Le texte à traiter

string2 de type VARCHAR

Le texte à traiter

Renvoie

La fonction renvoie soit 0, soit 1.

Exemple d’utilisation

Entrée :

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

Sortie :

0.770000
Copy

YEAR_BEGIN_ISO_UDF

Définition

UDF qui calcule le premier jour de l’année ISO pour une date donnée. Il s’agit de trouver le lundi le plus proche du 1er janvier de l’année, en utilisant la fonction DAYOFWEEKISO en combinaison avec PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF. La fonction ajoute ou soustrait des jours pour localiser ce lundi.

PUBLIC.YEAR_BEGIN_ISO_UDF(INPUT DATE)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date qui représente le 1er janvier de l’année en cours selon la norme du calendrier ISO.

Renvoie

Le premier jour de l’année selon la norme du calendrier ISO.

Exemple d’utilisation

Entrée :

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

Sortie :

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

YEAR_PART_UDF

Définition

Extrait l’année d’une date et la tronque à un nombre de chiffres spécifié.

PUBLIC.YEAR_PART_UDF(INPUT TIMESTAMP_TZ, DIGITS INTEGER)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date à partir de laquelle l’année doit être extraite.

DIGITS Un nombre entier qui représente le nombre maximum de chiffres à afficher

Le nombre de décimales souhaitées dans la sortie.

Renvoie

Extrait le composant année d’une date spécifiée.

Exemple d’utilisation

Entrée :

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

Sortie :

'021'
'21'
'1'
Copy

YEAR_WITH_COMMA_UDF

Définition

Extrait l’année d’une date et ajoute une virgule entre le premier et le deuxième chiffre. Par exemple, si l’année est 2023, il renvoie « 2,023 ».

PUBLIC.YEAR_WITH_COMMA_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date d’entrée à partir de laquelle l’année doit être extraite.

Renvoie

Renvoie la partie année d’une valeur de date sous forme de varchar (texte) avec un séparateur à virgule.

Exemple d’utilisation

Entrée :

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

Sortie :

'2,021'
Copy

MONTHS_BETWEEN_UDF

Définition

Calculer le nombre de mois entre deux dates

MONTHS_BETWEEN_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
Copy

Paramètres

FIRST_DATE est une colonne d’horodatage qui comprend à la fois des informations sur la date et l’heure, avec prise en charge des fuseaux horaires (TIMESTAMP_LTZ)

Date initiale à partir de laquelle la fonction commencera à traiter les données.

SECOND_DATE TIMESTAMP_LTZ

La date de fin qui définit quand arrêter le comptage.

Renvoie

La durée en mois entre deux dates.

Exemple d’utilisation

Entrée :

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

Sortie :

12
Copy

SECONDS_PAST_MIDNIGHT_UDF

Définition

Calculez le nombre de secondes écoulées depuis minuit pour une heure donnée.

PUBLIC.SECONDS_PAST_MIDNIGHT_UDF(INPUT TIME)
Copy

Paramètres

INPUT TIME

La fonction calcule le nombre total de secondes écoulées depuis minuit (00:00:00) jusqu’à l’heure actuelle.

Renvoie

Une valeur varchar représentant le nombre de secondes écoulées depuis minuit.

Exemple d’utilisation

Entrée :

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

Sortie :

'37845'
Copy

CHAR2HEXINT_UDF

Définition

Renvoie une chaîne contenant la représentation hexadécimale (base 16) de chaque caractère de la chaîne d’entrée.

PUBLIC.CHAR2HEXINT_UDF(INPUT_STRING VARCHAR);
Copy

Paramètres

INPUT_STRING est une variable de type VARCHAR qui stocke des données textuelles.

La chaîne d’entrée qui doit être convertie.

Renvoie

Renvoie une chaîne contenant la représentation hexadécimale de la chaîne d’entrée.

Exemple

Entrée :

SELECT CHAR2HEXINT('1234') from t1;
Copy

Sortie :

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

Plus d’informations sur la fonction source

La documentation sur les fonctions est disponible dans la documentation de Teradata.

INTERVAL_ADD_UDF

Définition

UDFs (fonctions définies par l’utilisateur) qui gèrent les opérations de soustraction entre une valeur d’intervalle et une référence de colonne de type intervalle.

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

Paramètres

INPUT_VALUE1 de type VARCHAR

Les données d’entrée qui seront traitées par le système.

INPUT_PART1 de type VARCHAR

L’unité de temps à utiliser, par exemple “HOUR”.

INPUT_VALUE2 est un paramètre de type données VARCHAR.

Le nom de la colonne référencée, par exemple “INTERVAL_HOUR_TYPE

INPUT_PART2 VARCHAR

Le type de données attribué à la colonne référencée.

OP caractère

Le symbole ou l’opérateur en cours d’analyse.

OUTPUT_PART VARCHAR

Le type de données de la valeur retournée.

Renvoie

Une valeur varchar qui représente le résultat de la soustraction de deux intervalles de temps.

Exemple de migration

Entrée :

CREATE TABLE INTERVAL_TABLE
(
    INTERVAL_YEAR_TYPE INTERVAL YEAR
);

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

Sortie :

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

Définition

Une fonction définie par l’utilisateur (UDF) qui convertit un horodatage en nom complet du jour (par exemple, « lundi », « mardi », etc.).

PUBLIC.DAY_OF_WEEK_LONG_UDF(INPUT_DATE TIMESTAMP)
Copy

Paramètres

INPUT_DATE représente une valeur d’horodatage

L’horodatage sera converti en un nom de jour complet (par exemple, « lundi », « mardi », etc.).

Renvoie

Le nom du jour en anglais.

TD_WEEK_OF_CALENDAR_UDF

Définition

La fonction définie par l’utilisateur (UDF) remplace directement la fonction TD_WEEK_OF_CALENDAR de Teradata, qui fournit la même fonctionnalité dans Snowflake.

PUBLIC.TD_WEEK_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

Date utilisée pour calculer le nombre de semaines écoulées depuis le 1er janvier 1900.

Renvoie

Un entier représentant le nombre de semaines complètes entre le 1er janvier 1900 et la date spécifiée

Exemple de migration

Entrée :

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

Sortie :

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

WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF

Définition

Convertit les nombres négatifs en utilisant des crochets (< >) au lieu du signe moins (-). Cette conversion se produit lorsque l’élément de format PR (parenthèses) est présent dans la chaîne de format originale de Teradata.

PUBLIC.WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF(INPUT NUMBER, FORMATARG VARCHAR)
Copy

Paramètres

INPUT est une valeur numérique

La valeur numérique qui sera convertie en chaîne de texte (varchar).

FORMATARG est un paramètre de type VARCHAR qui spécifie le format des données.

Le paramètre de format indique comment convertir la valeur INPUT en une représentation textuelle (varchar).

Renvoie

Un varchar `` contenant des nombres négatifs entre crochets (< >).

Exemple d’utilisation

Entrée :

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

Sortie :

'8456'
'<8456>'
Copy

INSTR_UDF (STRING, STRING)

Avertissement

Il s’agit de la fonction définie par l’utilisateur (UDF) qui accepte deux ensembles de paramètres différents.

Définition

Recherche toutes les instances où search_string apparaît dans source_string.

PUBLIC.INSTR_UDF(SOURCE_STRING STRING, SEARCH_STRING STRING)
Copy

Paramètres

SOURCE_STRING représente la chaîne d’entrée à traiter

Le texte qui sera recherché.

SEARCH_STRING est un paramètre de type STRING qui spécifie le texte à rechercher.

Le modèle de texte que la fonction va rechercher et faire correspondre.

Renvoie

La position de l’index où se trouve le modèle dans la chaîne source (à partir de la position 1).

Exemple d’utilisation

Entrée :

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

Sortie :

2
Copy

TRANSLATE_CHK_UDF

Définition

Vérifie si le code peut être converti avec succès sans générer d’erreurs.

PUBLIC.TRANSLATE_CHK_UDF(COL_NAME STRING, SOURCE_REPERTOIRE_NAME STRING)
Copy

Paramètres

COL_NAME est une variable de type chaîne qui représente un nom de colonne.

La colonne qui doit être validée.

SOURCE_REPERTOIRE_NAME est un paramètre de type chaîne qui spécifie le nom du répertoire source.

Le nom de la collection ou de la bibliothèque source.

Renvoie

0 : la traduction a réussi et s’est achevée sans erreur. NULL : aucun résultat n’a été renvoyé (valeur nulle).

La position du premier caractère dans la chaîne provoque une erreur de traduction.

Exemple d’utilisation

Entrée :

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

Sortie :

0
Copy

EXPAND_ON_UDF

Note

Pour une meilleure lisibilité, nous avons simplifié certaines sections du code dans cet exemple.

Définition

Réplique le comportement de la fonction « expand-on » de Teradata.

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

Paramètres

TIME est un type de données qui stocke les valeurs temporelles sous forme de texte (STRING).

Le temps nécessaire à l’expansion complète de l’ancre.

SEQ Numéro de séquence

L’ordre dans lequel les valeurs de chaque ligne sont calculées.

PERIOD Valeur textuelle représentant une période

La date de la période spécifiée.

Renvoie

Valeur VARCHAR définissant le mode de calcul de la période d’expansion dans la clause « expand-on ».

Exemple de migration

Entrée :

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

Sortie :

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

Définition

Renvoie un tableau contenant des nombres séquentiels compris entre 1 et la valeur retournée par DIFF_TIME_PERIOD_UDF.

PUBLIC.ROW_COUNT_UDF(NROWS DOUBLE)
Copy

Paramètres

NROWS représente le nombre total de lignes d’un ensemble de données sous la forme d’un nombre décimal (DOUBLE)

La valeur retournée par la fonction DIFF_TIME_PERIOD_UDF.

Renvoie

Un tableau qui détermine le nombre de lignes nécessaires pour répliquer la fonctionnalité de la clause EXPAND ON.

Exemple d’utilisation

Entrée :

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

Sortie :

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

Exemple de migration

Entrée :

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

Sortie :

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

Définition

Calcule le siècle pour une date donnée.

PUBLIC.CENTURY_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date d’entrée utilisée pour déterminer le siècle.

Renvoie

Renvoie le numéro de siècle sous forme de varchar pour une date donnée.

Exemple d’utilisation

Entrée :

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

Sortie :

'20'
Copy

TIME_DIFFERENCE_UDF

Avertissement

Cette fonctionnalité UDF est obsolète car Snowflake fournit désormais une fonction équivalente intégrée. Pour plus de détails, veuillez vous référer à la documentation de TIMEDIFF .

Définition

Calcule l’intervalle de temps entre deux horodatages donnés.

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

Paramètres

MINUEND Une valeur d’horodatage qui sera soustraite

Temps à soustraire de la valeur initiale.

SUBTRAHEND Valeur de l’horodatage à soustraire d’un autre horodatage

Le temps a été soustrait.

INPUT_PART est une variable de type VARCHAR qui stocke les données d’entrée.

EXTRACT_PART est une variable de type VARCHAR qui stocke la partie extraite d’une chaîne.

Extraire une valeur numérique d’un intervalle de temps.

Renvoie

Valeur textuelle (VARCHAR) représentant une heure précise.

Exemple

Entrée :

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

Sortie :

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

INTERVAL_DIVIDE_UDF

Définition

Une fonction personnalisée (UDF) qui effectue des calculs de division d’intervalles.

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

Paramètres

INPUT_PART est une variable de type VARCHAR qui représente la partie des données en entrée.

La valeur qui spécifie le type d’intervalle, par exemple “YEAR TO MONTH”.

INPUT_VALUE VARCHAR

L’intervalle de temps à diviser.

INPUT_DIV est une valeur entière qui représente le diviseur d’entrée.

Le nombre qui sera divisé par un autre nombre.

Renvoie

La sortie est calculée en divisant un intervalle de temps par une valeur numérique.

Exemple de migration

Entrée :

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

Sortie :

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

DAYNUMBER_OF_MONTH_UDF

Définition

L’UDF détermine le jour du mois où tombe un horodatage donné. Sa fonctionnalité est similaire à celle de la fonction DAYNUMBER_OF_MONTH(DATE, “ISO”) de Teradata.

PUBLIC.DAYNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

Une valeur de date qui sera utilisée pour déterminer le jour de la semaine correspondant.

Renvoie

Un nombre entier de 1 à 33 (inclus).

Exemple

Entrée :

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

Sortie :

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

LAST_DAY_DECEMBER_OF_ISO_UDF

Définition

UDF (fonction définie par l’utilisateur) qui traite le 31 décembre et renvoie l’année ISO correspondante. Cette fonction est utilisée comme composante du calcul PUBLIC.YEAR_END_IDO_UDF.

PUBLIC.LAST_DAY_DECEMBER_OF_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

Pour obtenir le dernier jour de décembre en utilisant le format d’année ISO, utilisez le 31 décembre.

Renvoie

Une date représentant le 31 décembre au format d’année ISO.

Exemple d’utilisation

Entrée :

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

Sortie :

2021-12-31
Copy

DATEADD_UDF

Note

Pour une meilleure lisibilité, nous avons simplifié certaines sections du code dans cet exemple.

Définition

Fonction pour calculer la somme de deux dates

PUBLIC.DATE_ADD_UDF(FIRST_DATE DATE, SECOND_DATE DATE)
Copy

Paramètres

FIRST_DATE représente une colonne de type DATE

La valeur de la date initiale à inclure.

SECOND_DATE représente une colonne de type DATE

Ajoutez la valeur de la deuxième date à celle de first_date.

Renvoie

Le résultat est une date calculée en combinant les deux paramètres d’entrée.

Exemple

Entrée :

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

Sortie :

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

Définition

Une fonction définie par l’utilisateur (UDF) qui convertit un format de date julienne (YYYYDDD) en une date standard du calendrier grégorien (YYYY-MM-DD).

PUBLIC.JULIAN_TO_DATE_UDF(JULIAN_DATE CHAR(7))
Copy

Paramètres

JULIAN_DATE CHAR - Un type de données caractère utilisé pour stocker des dates au format julien.

La date à convertir du format julien.

Renvoie

Renvoie la performance de la date julienne, ou null si la conversion ne peut être effectuée.

Exemple d’utilisation

Entrée :

SELECT JULIAN_TO_DATE_UDF('2022045');
Copy

Sortie :

'2022-02-14'
Copy

Exemple de migration

Entrée :

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

Sortie :

SELECT
PUBLIC.JULIAN_TO_DATE_UDF('2020002');
Copy

FIRST_DAY_JANUARY_OF_ISO_UDF

Définition

Le premier jour du mois de janvier de l’année civile ISO, qui est utilisé par la fonction PUBLIC.YEAR_BEGIN_ISO_UDF pour calculer son résultat.

FUNCTION PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date qui représente le 1er janvier selon le format de l’année civile ISO.

Renvoie

Une date représentant le 1er janvier de l’année civile ISO spécifiée.

Exemple d’utilisation

Entrée :

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

Sortie :

2021-01-01
Copy

TIMESTAMP_DIFFERENCE_UDF

Définition

Comment soustraire deux dates à l’aide d’une fonction définie par l’utilisateur (UDF)

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

Différences entre la soustraction de la date et de l’heure de Teradata et de Snowflake

Teradata et Snowflake utilisent des méthodes différentes pour le calcul de la date et de l’heure. Ils diffèrent par leur syntaxe, les types de données de sortie et les niveaux de précision.

Avertissement

Lors des calculs de dates, les résultats peuvent différer d’un jour en raison des arrondis ou des différences de fuseaux horaires.

Paramètres

MINUEND Une valeur d’horodatage qui sera soustraite de représente la valeur d’horodatage qui sera soustraite

La date utilisée comme point de départ de la soustraction.

SUBTRAHEND est une valeur d’horodatage qui sera soustraite d’un autre horodatage.

La date a été supprimée.

INPUT_PART est une variable de type VARCHAR (chaîne de caractères de longueur variable)

Les parties qui doivent être renvoyées.

Renvoie

Formatez la valeur de la chaîne en fonction du paramètre INPUT_PART spécifié.

Exemple

Entrée :

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

FIRST_DAY_OF_MONTH_ISO_UDF

Définition

La fonction définie par l’utilisateur (UDF) renvoie le premier jour d’un mois donné au format ISO (YYYY-MM-DD).

PUBLIC.FIRST_DAY_OF_MONTH_ISO_UDF(YEAR NUMBER, MONTH NUMBER)
Copy

Paramètres

YEAR est un type de données numériques utilisé pour stocker une valeur d’année à quatre chiffres.

Valeur numérique représentant une année civile (par exemple, 2023).

MONTH Une valeur numérique représentant un mois (1-12)

Valeur numérique (1-12) représentant un mois calendaire.

Renvoie

Renvoie le premier jour du mois en cours au format ISO (YYYY-MM-DD).

Exemple

Note

Cette UDF est une fonction d’aide utilisée dans la fonction DAYNUMBER_OF_MONTH_UDF.

INT_TO_DATE_UDF

Définition

UDF pour convertir des valeurs numériques en dates (fonction de compatibilité de Teradata)

PUBLIC.INT_TO_DATE_UDF(NUMERIC_EXPRESSION INTEGER)
Copy

Paramètres

NUMERIC_EXPRESSION représente une valeur numérique ou une expression qui s’évalue à un entier

Une valeur qui représente une date dans un format spécifique, par exemple YYYY-MM-DD

Renvoie

Nombre converti dans un format de date.

Exemple

Entrée :

SELECT * FROM table1
WHERE date_column > 1011219
Copy

Sortie :

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

NULLIFZERO_UDF

Définition

Remplace les valeurs nulles par NULL dans les données pour éviter les erreurs de division par zéro.

PUBLIC.NULLIFZERO_UDF(NUMBER_TO_VALIDATE NUMBER)
Copy

Paramètres

NUMBER_TO_VALIDATE NUMBER

Le numéro qui doit être validé.

Renvoie

Renvoie null si le nombre à l’entrée est nul ; sinon, renvoie le nombre original.

Exemple d’utilisation

SELECT NULLIFZERO_UDF(0);
Copy

Sortie :

NULL
Copy

DATE_LONG_UDF

Définition

Convertit une date au format “Jour, Mois DD, YYYY” (par exemple, Lundi 01 janvier 2024). Ce format correspond à l’élément de format de date DL de Teradata.

PUBLIC.DATE_LONG_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date doit être affichée dans un format long (par exemple : « 15 septembre 2023 »).

Renvoie

Un type de données VARCHAR qui représente l’élément du format Teradata DL.

Exemple d’utilisation

Entrée :

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

Sortie :

'Tuesday, October 26, 2021'
Copy

TD_MONTH_OF_CALENDAR_UDF

Définition

La fonction définie par l’utilisateur (UDF) remplace la fonction TD_MONTH_OF_CALENDAR de Teradata, qui offre les mêmes fonctionnalités.

PUBLIC.TD_MONTH_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

Date utilisée pour calculer le nombre de mois écoulés depuis le 1er janvier 1900.

Renvoie

Un entier représentant le nombre de mois entre le 1er janvier 1900 et la date spécifiée

Exemple de migration

Entrée :

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

Sortie :

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

MONTH_NAME_LONG_UDF

Définition

Une fonction définie par l’utilisateur (UDF) qui convertit un horodatage en son nom de mois complet correspondant.

PUBLIC.MONTH_NAME_LONG_UDF(INPUT_DATE TIMESTAMP)
Copy

Paramètres

INPUT DATE

L’horodatage doit être converti pour afficher le nom complet du mois.

Renvoie

Le nom du mois en anglais.

TD_DAY_OF_CALENDAR_UDF

Définition

Fonction définie par l’utilisateur (UDF) qui réplique la fonctionnalité TO_DAY_OF_CALENDAR de Teradata

PUBLIC.TD_DAY_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

Date utilisée pour calculer le nombre de jours écoulés depuis le 1er janvier 1900.

Renvoie

Un nombre entier représentant le nombre de jours entre le 1er janvier 1900 et la date INPUT

Exemple de migration

Entrée :

SELECT td_day_of_calendar(current_date)
Copy

Sortie :

SELECT
PUBLIC.TD_DAY_OF_CALENDAR_UDF(CURRENT_DATE());
Copy

PERIOD_TO_TIME_UDF

Définition

Fonction qui convertit une valeur Teradata PERIOD en une valeur TIME, en conservant le comportement de distribution de Teradata.

PERIOD_TO_TIME_UDF(PERIOD_VAL VARCHAR(22))
Copy

Paramètres

PERIOD_VAL représente une valeur de période

La période qui doit être convertie.

Renvoie

La fonction renvoie une valeur TIME représentant la PERIOD. Si la conversion ne peut pas être effectuée, elle renvoie null.

Exemple d’utilisation

Entrée :

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

Sortie :

08:42:04
Copy

INSTR_UDF (STRING, STRING, DOUBLE, DOUBLE)

Avertissement

Cette fonction définie par l’utilisateur (UDF) accepte quatre paramètres d’entrée.

Définition

Recherche toutes les instances où search_string apparaît dans source_string.

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

Paramètres

SOURCE_STRING représente la chaîne d’entrée à traiter

La chaîne de texte qui sera recherchée.

SEARCH_STRING est une valeur de texte que vous souhaitez rechercher.

Le modèle de texte que la fonction va rechercher et faire correspondre.

POSITION DOUBLE - Un type de données numériques qui stocke les nombres décimaux avec une double précision.

La position dans le texte où la recherche commencera (à partir de la position 1).

OCCURRENCE DOUBLE - Type de données numériques représentant le nombre de fois qu’un événement se produit, stocké sous la forme d’un nombre à virgule flottante à double précision.

La position dans le texte où la recherche commencera (à partir de la position 1).

Renvoie

La position de l’index où se trouve le texte spécifié dans la chaîne source.

Exemple d’utilisation

Entrée :

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

Sortie :

20
Copy

ROUND_DATE_UDF

Définition

Une fonction définie par l’utilisateur (UDF) qui traite une DATE_VALUE en arrondissant la portion de temps à une unité spécifiée (UNIT_TO_ROUND_BY). Cette fonction est similaire à la fonction Teradata ROUND(date).

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

Paramètres

DATE_TO_ROUND TIMESTAMP_TZ (Une valeur d’horodatage avec des informations sur le fuseau horaire qui doivent être arrondies)

La valeur de la date qui doit être arrondie.

UNIT_TO_ROUND_BY VARCHAR - Spécifie l’unité de temps utilisée pour l’arrondi

L’unité de temps utilisée pour arrondir la date.

Renvoie

Renvoie une date arrondie à l’unité de temps spécifiée. Le paramètre UNIT_TO_ROUND_BY détermine comment la date sera arrondie.

Exemple de migration

Entrée :

SELECT ROUND(CURRENT_DATE, 'RM') RND_DATE
Copy

Sortie :

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

SUBSTR_UDF (STRING, FLOAT, FLOAT)

Avertissement

Il s’agit de la fonction définie par l’utilisateur (UDF) qui accepte trois paramètres.

Définition

Récupère une partie de texte à partir d’une chaîne spécifiée en utilisant les positions de début et de fin.

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

Paramètres

BASE_EXPRESSION est un paramètre sous forme de chaîne qui définit l’expression de base.

Le texte source dont vous voulez extraire une partie.

START_POSITION est un nombre à virgule flottante qui définit la position initiale.

La position à laquelle vous souhaitez commencer à extraire les caractères de la chaîne.

LENGTH est un nombre à virgule flottante qui représente la valeur de la longueur.

La position à laquelle vous souhaitez commencer à extraire les caractères de la chaîne.

Renvoie

La sous-chaîne qui doit être incluse.

Exemple d’utilisation

Entrée :

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

Sortie :

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

GETQUERYBANDVALUE_UDF (VARCHAR)

Avertissement

Il s’agit de la fonction définie par l’utilisateur (UDF) qui accepte un paramètre.

Définition

Renvoie une valeur à partir d’une paire nom-valeur stockée dans la bande de requête de la transaction, de la session ou du profil.

GETQUERYBANDVALUE_UDF(SEARCHNAME VARCHAR)
Copy

Paramètres

SEARCHNAME VARCHAR - Une variable de type VARCHAR utilisée pour stocker des termes ou des noms de recherche. - Une variable de type VARCHAR utilisée pour stocker des termes ou des noms de recherche.

Le nom à rechercher dans les paires clé-valeur.

Renvoie

La valeur clé « name » de la bande de requête de la session, ou null si elle n’est pas présente.

Exemple d’utilisation

Entrée :

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

Sortie :

security
Copy

Exemple de migration

Entrée :

SELECT GETQUERYBANDVALUE(1, 'group');
Copy

Sortie :

/** 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

Définition

Fonction définie par l’utilisateur (UDF) qui calcule le numéro de semaine complet d’une date donnée dans l’année. Cette fonction offre les mêmes fonctionnalités que les fonctions TD_WEEK_OF_YEAR et WEEKNUMBER_OF_YEAR de Teradata.

PUBLIC.TD_WEEK_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

Date utilisée pour calculer le numéro de la semaine.

Renvoie

Valeur numérique indiquant la semaine de l’année dans laquelle se situe la date spécifiée.

Exemple d’utilisation

Entrée :

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

Sortie :

18, 0
Copy

EXTRACT_TIMESTAMP_DIFFERENCE_UDF

Note

Pour une meilleure lisibilité, nous avons simplifié les exemples de code en ne montrant que les parties les plus pertinentes.

Définition

Récupère la partie « Données » du résultat de la soustraction de SUBTRAHEND à MINUEND

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

Différences entre l’extraction de date et d’heure de Teradata et de Snowflake

Les fonctions Teradata et Snowflake peuvent avoir des exigences différentes en matière de paramètres et renvoyer des types de données différents.

  • Paramètres : la distinction clé entre les fonctions EXTRACT de Teradata et de Snowflake est que Snowflake ne travaille qu’avec des dates et des heures, alors que Teradata prend également en charge les intervalles. Pour plus de détails, référez-vous à la documentation de la fonction EXTRACT de Snowflake et à la documentation de la fonction EXTRACT de Teradata.

  • Type de retour : les fonctions renvoient des valeurs différentes : la fonction EXTRACT de Teradata renvoie un entier ou une valeur décimale (8, 2), tandis que la fonction EXTRACT de Snowflake renvoie un nombre représentant la partie date-heure de la requête.

Les fonctions Teradata et Snowflake peuvent avoir des paramètres d’entrée et des types de sortie différents.

Paramètres

MINUEND TIMESTAMP

La date utilisée comme point de départ de la soustraction.

SUBTRAHEND Valeur de l’horodatage à soustraire d’un autre horodatage

La date a été supprimée.

INPUT_PART VARCHAR

Le varchar formaté doit correspondre à la partie originale de la requête (qui est la même que TIMESTAMP_DIFERENCE INPUT_PART) et doit être l’un des éléments suivants :

  • 'DAY TO HOUR'

  • 'DAY TO MINUTE'

  • 'DAY TO SECOND'

  • 'DAY TO MINUTE'

  • 'HOUR TO MINUTE'

  • 'HOUR TO SECOND'

  • 'MINUTE TO SECOND'

EXTRACT_PART est un type de données VARCHAR qui représente la partie extraite d’une chaîne.

L’unité de temps pour l’extraction doit être l’une des valeurs suivantes : 'DAY', 'HOUR', 'MINUTE' ou 'SECOND'. L’unité de temps requête doit être comprise dans l’intervalle de temps d’entrée.

Renvoie

Le nombre de requêtes incluses dans le processus d’extraction.

Exemple

Entrée :

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

Sortie :

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

JSON_EXTRACT_DOT_NOTATION_UDF

Définition

Une fonction définie par l’utilisateur (UDF) qui vous permet d’effectuer des requêtes sur des objets JSON en utilisant la notation par points, de la même manière que vous accédez à des propriétés imbriquées dans JavaScript ou Python.

JSON_EXTRACT_DOT_NOTATION_UDF(JSON_OBJECT VARIANT, JSON_PATH STRING)
Copy

Différences entre la référence d’entité JSON de Teradata (notation par points) et la méthode de requête JSON de Snowflake.

Teradata et Snowflake utilisent des méthodes différentes pour parcourir les données JSON. Teradata utilise une approche basée sur JavaScript avec la notation par points, l’indexation des tableaux et des opérateurs spéciaux tels que l’accès par caractères génériques et la notation par doubles points. En revanche, Snowflake a des capacités de traversée JSON plus limitées, en ne prenant en charge que l’accès direct aux membres et l’indexation des tableaux.

Paramètres

JSON_OBJECT Type de données représentant un objet JSON, qui peut contenir des paires clé-valeur imbriquées de différents types de données.

L’objet JSON contenant les valeurs à extraire.

JSON_PATH Un paramètre sous forme de chaîne qui spécifie le chemin à suivre pour extraire les données d’un document JSON

L’emplacement dans JSON_OBJECT où les valeurs peuvent être trouvées, spécifié en utilisant la notation du chemin JSON.

Renvoie

Les éléments de données du JSON_OBJECT qui correspondent au JSON_PATH spécifié.

Exemple de migration

Entrée :

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

Sortie :

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

WEEK_OF_MONTH_UDF

Définition

Calcule la semaine du mois dans laquelle se situe une date donnée.

PUBLIC.WEEK_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date utilisée pour déterminer la semaine du mois dans laquelle il tombe.

Renvoie

Une colonne VARCHAR qui indique dans quelle semaine du mois se situe une date spécifique.

Exemple d’utilisation

Entrée :

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

Sortie :

'4'
Copy

DAYNAME_LONG_UDF (TIMESTAMP_TZ)

Avertissement

Il s’agit de la fonction définie par l’utilisateur (UDF) qui accepte un paramètre.

Définition

UDF qui crée une variante de la fonction DAYNAME_LONG_UDF qui renvoie les noms des jours avec la première lettre en majuscule (format par défaut).

PUBLIC.DAYNAME_LONG_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date à partir de laquelle vous souhaitez obtenir le jour de la semaine.

Renvoie

Renvoie une chaîne contenant le nom complet d’un jour de la semaine.

Exemple d’utilisation

Entrée :

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

Sortie :

'Thursday'
Copy

INTERVAL_TO_MONTHS_UDF

Définition

Convertit un intervalle de temps en mois.

PUBLIC.INTERVAL_TO_MONTHS_UDF
(INPUT_VALUE VARCHAR())
Copy

Paramètres

INPUT_VALUE VARCHAR

La période qui sera changée en mois.

Renvoie

Le nombre de mois à traiter, spécifié sous la forme d’un entier.

GETQUERYBANDVALUE_UDF (VARCHAR, FLOAT, VARCHAR)

Avertissement

Cette fonction définie par l’utilisateur (UDF) accepte trois paramètres.

Définition

Renvoie une valeur à partir d’une paire nom-valeur stockée dans la bande de requête de la transaction, de la session ou du profil. La valeur est associée à un nom spécifique dans la bande de requête.

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

Paramètres

QUERYBAND est un type de données VARCHAR qui stocke les informations relatives à la bande de requête.

La bande de requête combine les bandes de requête de transaction, de session et de profil en une seule chaîne.

SEARCHTYPE est un type de données de type nombre à virgule flottante.

Profondeur maximale à laquelle les paires correspondantes seront recherchées.

0 représente une valeur de caractère générique qui correspond à n’importe quelle entrée.

Une transaction représente une unité de travail unique dans une base de données.

Un objet Session représente une connexion à Snowflake.

3 = Créer un profil.

SEARCHNAME VARCHAR

Le nom à rechercher dans les paires clé-valeur.

Renvoie

Renvoie la valeur de la clé “name” au niveau spécifié dans la hiérarchie. Si aucune valeur n’est trouvée, il renvoie null.

Exemple d’utilisation

Entrée :

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

Sortie :

      Matt
      SaraDB
      DbAdmin
      NULL
Copy

Exemple de migration

Entrée :

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

Sortie :

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

Définition

Calcule le nombre de jours julien, qui représente le décompte continu des jours depuis le 1er janvier 4713 BCE (avant l’ère commune). Le jour julien est utilisé en astronomie et pour le calcul du calendrier.

PUBLIC.JULIAN_DAY_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date qui sera convertie en nombre de jours juliens.

Renvoie

Une valeur varchar représentant la date julienne calculée.

Exemple d’utilisation

Entrée :

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

Sortie :

'2459514'
Copy

WEEKNUMBER_OF_MONTH_UDF

Définition

Identifiez le mois à partir d’une date donnée.

PUBLIC.WEEKNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date à partir de laquelle le numéro du mois doit être calculé.

Renvoie

Valeur numérique représentant le mois (1-12) d’une date donnée.

Exemple d’utilisation

Entrée :

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

Sortie :

3
Copy

JSON_EXTRACT_UDF

Définition

Une fonction définie par l’utilisateur (UDF) qui imite le comportement des fonctions JSONExtract, JSONExtractValue et JSONExtractLargeValue. Ce site UDF vous permet d’extraire plusieurs valeurs d’un objet JSON.

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

Paramètres

JSON_OBJECT est un type de données qui stocke des données formatées JSON dans un format structuré.

L’objet JSON contenant les valeurs à extraire.

JSON_PATH Une chaîne qui spécifie le chemin pour extraire les données d’un document JSON

L’emplacement dans le site JSON_OBJECT où les valeurs souhaitées peuvent être trouvées, spécifié en utilisant la notation du chemin JSON.

SINGLE_VALUE Un drapeau booléen qui indique s’il faut renvoyer une seule valeur ou plusieurs valeurs.

Paramètre BOOLEAN : lorsqu’il est défini sur true, renvoie une seule valeur (exigence pour les fonctions JSONExtractValue et JSONExtractLargeValue). Lorsqu’il est défini sur false, il renvoie un tableau de valeurs (utilisé avec JSONExtract).

Renvoie

Les valeurs des données trouvées au chemin spécifié JSON dans l’objet JSON.

Exemple de migration

Entrée :

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

Sortie :

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

COMPUTE_EXPAND_ON_UDF

Définition

Détermine comment développer les données en fonction du type de période spécifié.

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

Paramètres

TIME STRING

L’horodatage utilisé dans l’ancre.

SEQ numéro de séquence

L’ordre dans lequel les calculs de chaque ligne sont effectués.

PERIOD représente une valeur d’horodatage qui indique un moment précis dans le temps.

La date de la période spécifiée.

PERIODTYPE est une valeur de chaîne qui définit le type de période.

La période utilisée pour le calcul (soit “BEGIN” ou “END”)

Renvoie

Horodatage indiquant le moment où chaque ligne de l’opération EXPAND-ON a été traitée.

Exemple

Avertissement

Cette UDF est une fonction dérivée qui étend les fonctionnalités de EXPAND_ON_UDF.

WEEK_NUMBER_OF_QUARTER_UDF

Définition

Renvoie le numéro de semaine du trimestre en cours pour une date donnée. Cette fonction a le même comportement que la fonction Teradata WEEKNUMBER_OF_QUARTER(DATE, 'ISO'), en utilisant le système de calendrier ISO.

PUBLIC.WEEK_NUMBER_OF_QUARTER_UDF(INPUT TIMESTAMP_TZ)
Copy

Paramètres

INPUT TIMESTAMP_TZ

La date utilisée pour calculer la semaine du trimestre dans laquelle il se situe.

Renvoie

Un entier indiquant la semaine du trimestre (1-13) à laquelle il est fait référence.

Exemple d’utilisation

Entrée :

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

Sortie :

1, 4
Copy

YEAR_END_ISO_UDF

Définition

Fonction définie par l’utilisateur (UDF) qui calcule le dernier jour de l’année pour une date donnée en utilisant les normes du calendrier ISO, similaire à la fonction TD_YEAR_END de Teradata.

PUBLIC.YEAR_END_ISO_UDF(INPUT date)
Copy

Paramètres

INPUT DATE

La date qui représente le dernier jour de l’année selon la norme du calendrier ISO.

Renvoie

Le dernier jour de l’année selon le système de calendrier ISO.

Exemple d’utilisation

Entrée :

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

Sortie :

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

INSERT_CURRENCY_UDF

Définition

Insérez le symbole monétaire directement avant le premier chiffre du nombre, en veillant à ce qu’il n’y ait pas d’espace ou de symbole entre le symbole monétaire et le nombre.

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

Paramètres

INPUT VARCHAR

La sortie de TO_CHAR lors de la conversion d’une valeur numérique nécessitant un formatage monétaire.

CURRENCYINDEX est une valeur entière qui représente l’index d’une monnaie.

La position dans le tableau où la devise doit être insérée.

CURRENCYVALUE Un champ VARCHAR qui stocke les valeurs monétaires

Le texte qui sera utilisé comme valeur de la devise.

Renvoie

Un champ varchar contenant le texte de la devise à une position définie.

Exemple d’utilisation

Entrée :

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

Sortie :

'+CRC823'
Copy

INSTR_UDF (STRING, STRING, INT)

Avertissement

Cette fonction définie par l’utilisateur (UDF) accepte trois paramètres.

Définition

Recherche toutes les instances où search_string apparaît dans source_string.

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

Paramètres

SOURCE_STRING représente une valeur de chaîne qui sera utilisée comme entrée

Le texte qui sera recherché.

SEARCH_STRING est une valeur de texte que vous souhaitez rechercher.

Le modèle de texte que la fonction va rechercher et faire correspondre.

POSITION est un type de données entier qui représente une position dans une séquence.

La position dans le texte où la recherche commence (à partir de la position 1).

Renvoie

L’emplacement dans la chaîne originale où la correspondance est trouvée.

Exemple d’utilisation

Entrée :

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

Sortie :

8
Copy