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)
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');
Sortie :
4, 1
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)
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');
Sortie :
SELECT
PUBLIC.DAYNUMBER_OF_YEAR_UDF(CURRENT_DATE());
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)
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);
Sortie :
SELECT
PUBLIC.SUBSTR_UDF('Hello World!', -2);
CHKNUM_UDF¶
Définition¶
Vérifiez si une chaîne contient une valeur numérique valide.
PUBLIC.CHKNUM_UDF(NUM STRING);
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');
Sortie :
SELECT
PUBLIC.CHKNUM_UDF('1032');
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)
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');
Sortie :
2022-12-31, 2022-12-31
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)
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');
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 ***/!!!;
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)
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')
Sortie :
5, 1
ROMAN_NUMERALS_MONTH_UDF¶
Définition¶
Convertit une date en son mois correspondant en chiffres romains.
PUBLIC.ROMAN_NUMERALS_MONTH_UDF(INPUT TIMESTAMP_TZ)
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');
Sortie :
'X'
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)
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');
Sortie :
2022-01-01, 2022-01-01
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)
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');
Sortie :
OCTOBER
october
October
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)
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');
Sortie :
01c0
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)
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');
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 ***/!!!;
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())
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)
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)
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;
Sortie :
SELECT
PUBLIC.INTERVAL_MULTIPLY_UDF('YEAR TO MONTH', '6-10', 8);
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)
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');
Sortie :
SELECT
PUBLIC.TD_DAY_OF_WEEK_UDF(DATE '2022-03-02');
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)
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);
Sortie :
'021'
'21'
'1'
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))
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');
Sortie :
5
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)
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')
Sortie :
SELECT
PUBLIC.SUBSTR_UDF('Hello World!', -2);
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)
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);
Sortie :
orange chicken
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)
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');
Sortie :
OCT
oct
Oct
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)
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;
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;
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)
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');
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
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)
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');
Sortie :
'TUESDAY'
'tuesday'
'Tuesday'
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)
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');
Sortie :
1, 6
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)
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')
Sortie :
0.770000
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)
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');
Sortie :
2021-01-04, 2022-01-03
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)
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);
Sortie :
'021'
'21'
'1'
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)
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');
Sortie :
'2,021'
MONTHS_BETWEEN_UDF¶
Définition¶
Calculer le nombre de mois entre deux dates
MONTHS_BETWEEN_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
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');
Sortie :
12
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)
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');
Sortie :
'37845'
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);
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;
Sortie :
SELECT
PUBLIC.CHAR2HEXINT_UDF('1234') from
t1;
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())
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;
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;
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)
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)
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')
Sortie :
SELECT
PUBLIC.TD_WEEK_OF_CALENDAR_UDF(DATE '2023-11-30');
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)
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');
Sortie :
'8456'
'<8456>'
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)
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');
Sortie :
2
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)
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');
Sortie :
0
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)
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;
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;
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)
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'));
Sortie :
[1, 2, 3, 4, 5]
Exemple de migration¶
Entrée :
SELECT NORMALIZE emp_id, duration FROM project EXPAND ON duration AS bg BY ANCHOR ANCHOR_SECOND;
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;
CENTURY_UDF¶
Définition¶
Calcule le siècle pour une date donnée.
PUBLIC.CENTURY_UDF(INPUT TIMESTAMP_TZ)
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');
Sortie :
'20'
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)
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;
Sortie :
SELECT
EXTRACT_TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'DAY TO HOUR', 'DAY')
from
tableName;
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)
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;
Sortie :
SELECT
PUBLIC.INTERVAL_DIVIDE_UDF('YEAR TO MONTH', '6-10', 8);
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)
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');
Sortie :
SELECT
PUBLIC.DAYNUMBER_OF_MONTH_UDF(DATE'2022-12-22');
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)
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');
Sortie :
2021-12-31
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)
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;
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;
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))
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');
Sortie :
'2022-02-14'
Exemple de migration¶
Entrée :
SELECT TO_DATE('2020002', 'YYYYDDD');
Sortie :
SELECT
PUBLIC.JULIAN_TO_DATE_UDF('2020002');
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)
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');
Sortie :
2021-01-01
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)
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.
Syntaxe : dans Teradata, les soustractions DATE, TIMESTAMP et TIME utilisent un signe moins et un intervalle pour spécifier le format du résultat. Pour plus de détails, voir https://docs.teradata.com/r/w19R4KsuHIiEqyxz0WYfgA/7kLLsWrP0kHxbk3iida0mA. Snowflake traite ces opérations différemment en utilisant trois fonctions :
DATEDIFF (fonctionne avec tous les types de dates)
TIMESTAMPDIFF
TIMEDIFF Chaque fonction requiert les deux dates à comparer et la partie date à renvoyer. Pour les types DATE, vous pouvez également utiliser le signe moins, qui renvoie la différence en jours.
Type de retour : Teradata renvoie différents types d’intervalles (voir https://www.docs.teradata.com/r/T5QsmcznbJo1bHmZT2KnFw/z~5iW7rYVstcmNYbd6Dsjg). Les fonctions de Snowflake renvoient un entier représentant le nombre d’unités. Pour plus de fonctions, voir https://docs.snowflake.com/en/sql-reference/functions/datediff.html
Arrondi : la façon dont DATEDIFF traite les parties de date peut produire des résultats différents de ceux de Teradata. Consultez https://docs.snowflake.com/en/sql-reference/functions/datediff.html#usage-notes pour connaître les comportements spécifiques en matière d’arrondi.
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;
SELECT
(
PUBLIC.TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'YEAR')) from
tableName;
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)
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)
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
Sortie :
SELECT
* FROM
table1
WHERE date_column > PUBLIC.INT_TO_DATE_UDF( 1011219);
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)
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);
Sortie :
NULL
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)
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');
Sortie :
'Tuesday, October 26, 2021'
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)
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')
Sortie :
SELECT
PUBLIC.TD_MONTH_OF_CALENDAR_UDF(DATE '2023-11-30');
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)
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)
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)
Sortie :
SELECT
PUBLIC.TD_DAY_OF_CALENDAR_UDF(CURRENT_DATE());
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))
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()));
Sortie :
08:42:04
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)
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);
Sortie :
20
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))
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
Sortie :
SELECT
PUBLIC.ROUND_DATE_UDF(CURRENT_DATE(), 'RM') RND_DATE;
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)
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);
Sortie :
'','','A','','A'
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)
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');
Sortie :
security
Exemple de migration¶
Entrée :
SELECT GETQUERYBANDVALUE(1, 'group');
Sortie :
/** 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¶
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)
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')
Sortie :
18, 0
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)
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;
Sortie :
SELECT
EXTRACT_TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'DAY TO HOUR', 'DAY')
from
tableName;
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)
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;
Sortie :
SELECT
JSON_EXTRACT_DOT_NOTATION_UDF(CAST(varcharColumn AS VARIANT), '$..name')
FROM
variantTest;
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)
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');
Sortie :
'4'
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)
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');
Sortie :
'Thursday'
INTERVAL_TO_MONTHS_UDF¶
Définition¶
Convertit un intervalle de temps en mois.
PUBLIC.INTERVAL_TO_MONTHS_UDF
(INPUT_VALUE VARCHAR())
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)
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');
Sortie :
Matt
SaraDB
DbAdmin
NULL
Exemple de migration¶
Entrée :
SELECT GETQUERYBANDVALUE('=T> account=Matt;user=Matt200; =S> account=SaraDB;user=Sara;role=DbAdmin;', 0, 'account')
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;
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)
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');
Sortie :
'2459514'
WEEKNUMBER_OF_MONTH_UDF¶
Définition¶
Identifiez le mois à partir d’une date donnée.
PUBLIC.WEEKNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
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')
Sortie :
3
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)
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;
Sortie :
SELECT
JSON_EXTRACT_UDF(Store, '$..author', FALSE) as AllAuthors
FROM
BookStores;
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)
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)
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')
Sortie :
1, 4
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)
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');
Sortie :
2022-01-02, 2023-01-01
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)
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');
Sortie :
'+CRC823'
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)
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);
Sortie :
8