SnowConvert: Funktionsreferenzen für Teradata

QUARTERNUMBER_OF_YEAR_UDF

Definition

UDF (benutzerdefinierte Funktion), die das Quartal eines bestimmten Datums entsprechend dem ISO-Kalenderjahr berechnet, ähnlich wie die Funktion QUARTERNUMBER_OF_YEAR_UDF(date, ‚ISO‘) von Teradata

PUBLIC.QUARTERNUMBER_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TimeSTAMP_TZ

Die Methode zum Extrahieren des Quartals

Rückgabewerte

Eine Ganzzahl (1–4), die angibt, in welches Quartal des Jahres das Datum fällt.

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

4, 1
Copy

DAYNUMBER_OF_YEAR_UDF

Definition

Gibt den Tag innerhalb des Jahres für einen bestimmten Zeitstempel zurück. Die Angabe des Tages reicht von 1 bis 365 (oder 366 in Schaltjahren). Diese Funktion verhält sich genauso wie DAYNUMBER_OF_YEAR(DATE, ‚ISO‘).

PUBLIC.DAYNUMBER_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Zum Ermitteln des Tages im Jahr anhand eines Datums.

Rückgabewerte

Eine ganze Zahl von 1 bis 371

Beispiel

Eingabe:

SELECT DAYNUMBER_OF_YEAR(CURRENT_DATE,'ISO');
Copy

Ausgabe:

SELECT
PUBLIC.DAYNUMBER_OF_YEAR_UDF(CURRENT_DATE());
Copy

SUBSTR_UDF (STRING, FLOAT)

Warnung

Diese benutzerdefinierte Funktion (UDF) akzeptiert zwei Parameter (überladene Funktion).

Definition

Ruft einen Teil des Textes aus einer angegebenen Zeichenfolge ab, indem eine Startposition und eine Länge angegeben werden

PUBLIC.SUBSTR_UDF(BASE_EXPRESSION STRING, START_POSITION FLOAT)
Copy

Parameter

BASE_EXPRESSION ist ein Zeichenfolgenparameter, der den Basisausdruck für die Operation definiert.

Der Quelltext, aus dem Sie einen Teil extrahieren möchten

START_POSITION: Eine Gleitkommazahl, die die Startposition in der Eingabezeichenfolge angibt

Die Position, an der Sie mit der Extraktion der Zeichen aus der Zeichenfolge beginnen möchten

Rückgabewerte

Die Teilzeichenfolge, die enthalten sein muss

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

CHKNUM_UDF

Definition

Überprüft, ob eine Zeichenfolge einen gültigen numerischen Wert enthält

PUBLIC.CHKNUM_UDF(NUM STRING);
Copy

Parameter

NUM: Eine Zeichenfolge, die eine Zahl darstellt

Die Textzeichenfolge, die überprüft werden muss

Rückgabewerte

Gibt 1 zurück, wenn der Eingabeparameter ein gültiger numerischer Wert ist. Wenn die Eingabe keine gültige Zahl ist (z. B. Text oder Sonderzeichen), wird 0 zurückgegeben.

Beispiel

SELECT CHKNUM('1032');
Copy

Ausgabe:

SELECT
PUBLIC.CHKNUM_UDF('1032');
Copy

TD_YEAR_END_UDF

Definition

UDF (benutzerdefinierte Funktion), die die Funktion TD_YEAR_END(DATE) oder TD_YEAR_END(DATE, ‚COMPATIBLE‘) von Teradata repliziert, die den letzten Tag des Jahres für ein bestimmtes Datum zurückgibt.

PUBLIC.TD_YEAR_END_UDF(INPUT date)
Copy

Parameter

INPUT DATE

Ermittelt den letzten Tag des aktuellen Jahres

Rückgabewerte

Der letzte Tag im Dezember (31. Dezember)

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

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

PERIOD_OVERLAPS_UDF

Definition

Eine benutzerdefinierte Funktion (UDF), die die Funktionalität von OVERLAPS OPERATOR implementiert. Diese Funktion vergleicht zwei oder mehr Zeiträume und stellt fest, ob sie sich zeitlich überschneiden.

PERIOD_OVERLAPS_UDF(PERIODS ARRAY)
Copy

Parameter

PERIODS ist ein Array, das Zeiträume enthält.

Alle Zeitraumausdrücke, die verglichen werden sollen

Rückgabewerte

TRUE, wenn alle Zeiträume in der Menge mindestens einen Punkt gemeinsam haben (Überschneidung), ansonsten FALSE

Migrationsbeispiel

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

Ausgabe:

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

Definition

Berechnet, in welche Wochennummer innerhalb des aktuellen Quartals ein bestimmtes Datum fällt

PUBLIC.WEEK_NUMBER_OF_QUARTER_COMPATIBLE_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, anhand dessen berechnet wird, in welche Woche des Quartals es fällt

Rückgabewerte

Eine Ganzzahl, die angibt, in welche Woche des Quartals das Datum fällt (1-13)

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

5, 1
Copy

ROMAN_NUMERALS_MONTH_UDF

Definition

Konvertiert ein Datum in den entsprechenden Monat in römischen Ziffern

PUBLIC.ROMAN_NUMERALS_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Eingabedatum, aus dem der Monat extrahiert werden soll

Rückgabewerte

Ein varchar, das den Monat aus einem bestimmten Datum extrahiert

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'X'
Copy

TD_YEAR_BEGIN_UDF

Definition

Eine benutzerdefinierte Funktion (UDF), die das Verhalten von TD_YEAR_BEGIN oder TD_YEAR_BEGIN(DATE, ‚COMPATIBLE‘) imitiert, indem sie den ersten Tag des Jahres für ein bestimmtes Datum zurückgibt

PUBLIC.TD_YEAR_BEGIN_UDF(INPUT DATE)
Copy

Parameter

INPUT DATE

Ermittelt den ersten Tag des aktuellen Jahres

Rückgabewerte

Der erste Tag im Januar

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

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

FULL_MONTH_NAME_UDF

Definition

Gibt den vollständigen Namen eines Monats in der von Ihnen gewählten Formatierung zurück: alle Großbuchstaben, alle Kleinbuchstaben oder nur der erste Buchstabe in Großbuchstaben

PUBLIC.FULL_MONTH_NAME_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datumsformat sollte den Monatsnamen anzeigen.

RESULTCASE VARCHAR

Das Format, in dem das Ergebnis angezeigt werden soll. Gültige Optionen sind „uppercase“, „lowercase“ und „firstOnly“.

Rückgabewerte

Gibt ein varchar zurück, das den vollständigen Namen eines Monats enthält

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

OCTOBER
october
October
Copy

TO_BYTES_HEX_UDF

Definition

Konvertiert eine Dezimalzahl (Basis 10) in ihre hexadezimale Darstellung (Basis 16)

TO_BYTES_HEX_UDF(INPUT FLOAT)
Copy

Parameter

INPUT ist ein Gleitkommazahlparameter.

Die Zahl, die in das Hexadezimalformat konvertiert wird

Rückgabewerte

Eine Zeichenfolge, die den Hexadezimalwert darstellt

Verwendungsbeispiel

Eingabe:

SELECT TO_BYTES_HEX_UDF('448');
Copy

Ausgabe:

01c0
Copy

PERIOD_INTERSECT_UDF

Definition

Eine benutzerdefinierte Funktion (UDF), die den P_INTERSECT-Operator repliziert. Diese Funktion vergleicht zwei oder mehr Zeiträume und stellt fest, wo sie sich überschneiden und gibt das gemeinsame Zeitintervall zwischen ihnen zurück.

Weitere Einzelheiten zur Quellfunktion finden Sie in der Dokumentation.

PERIOD_INTERSECT_UDF(PERIODS ARRAY)
Copy

Parameter

PERIODS ist ein Array, das Zeiträume enthält.

Alle Zeitraumausdrücke, die verglichen werden müssen

Rückgabewerte

Der Abschnitt, in dem sich zwei Zeiträume überschneiden oder gemeinsame Daten haben.

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

Definition

Konvertiert ein Zeitintervall in Sekunden.

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

Parameter

INPUT_PART ist eine Variable vom Typ VARCHAR, die Eingabedaten speichert.

Die Zeitdauer, die in Sekunden umgerechnet wird.

INPUT_VALUE VARCHAR: Der Eingabeparameter, der Textdaten akzeptiert

Der Zeitintervalltyp für die Konvertierung. Beispiele sind „DAY“, „DAY TO HOUR“ und andere gültige Intervalltypen.

Rückgabewerte

Eine Dezimalzahl, die das Zeitintervall in Sekunden angibt

TIMESTAMP_ADD_UDF

Definition

Kombiniert zwei Zeitstempel zu einem einzigen Wert

PUBLIC.TIMESTAMP_ADD_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
Copy

Parameter

FIRST_DATE ist ein Zeitstempelfeld, das sowohl Datums- als auch Zeitinformationen enthält, mit Unterstützung für Zeitzonen (TIMESTAMP_LTZ).

Das Anfangsdatum, an dem dies hinzugefügt wurde

SECOND_DATE ist eine Zeitstempelspalte, die Zeitzoneninformationen enthält (TIMESTAMP_LTZ) (Zeitstempel mit lokaler Zeitzone).

Das Datum, an dem das Element zum zweiten Mal hinzugefügt wurde

Rückgabewerte

Ein Zeitstempel, der durch die Kombination der eingegebenen Datumsparameter erzeugt wird

INTERVAL_MULTIPLY_UDF

Definition

Eine benutzerdefinierte Funktion (UDF), die Multiplikationsoperationen mit Zeitintervallen durchführt

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

Parameter

INPUT_PART ist eine Variable vom Typ VARCHAR, die Eingabedaten speichert.

Der für die Multiplikation verwendete Wert, angegeben als „YEAR TO MONTH“

INPUT_VALUE VARCHAR

Das Intervall, mit dem multipliziert werden soll

INPUT_MULT ist ein Ganzzahlparameter, der als Multiplikator für Eingabewerte dient.

Die Zahl, die in der Multiplikationsoperation verwendet wird

Rückgabewerte

Die Ausgabe wird durch Multiplikation eines Zeitintervalls mit einem numerischen Wert berechnet.

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

TD_DAY_OF_WEEK_UDF

Definition

Benutzerdefinierte Funktion (UDF), die die Funktionalität von TD_DAY_OF_WEEK von Teradata repliziert. Einzelheiten über die ursprüngliche Teradata-Funktion finden Sie hier.

PUBLIC.TD_DAY_OF_WEEK_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Datum, aus dem der Wochentag ermittelt werden soll

Rückgabewerte

Eine Ganzzahl von 1 bis 7, die den Wochentag angibt, wobei:

  • 1 = Sonntag

  • 2 = Montag

  • 3 = Dienstag

  • 4 = Mittwoch

  • 5 = Donnerstag

  • 6 = Freitag

  • 7 = Samstag

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

ISO_YEAR_PART_UDF

Definition

Berechnet das ISO-Kalenderjahr ab einem bestimmten Datum. Das Ergebnis kann gekürzt werden, indem Sie die Anzahl der zu behaltenden Stellen angeben.

PUBLIC.ISO_YEAR_PART_UDF(INPUT TIMESTAMP_TZ, DIGITS INTEGER)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, aus dem das ISO-Jahr zu extrahieren ist

DIGITS: Eine ganze Zahl, die die maximale Anzahl der anzuzeigenden Ziffern angibt

Die Anzahl der gewünschten Dezimalstellen in der Ausgabe

Rückgabewerte

Gibt eine Zeichenfolge (varchar) zurück, die das ISO-Jahr eines bestimmten Datums darstellt

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'021'
'21'
'1'
Copy

DIFF_TIME_PERIOD_UDF

Definition

Berechnet das Zeitintervall zwischen zwei Daten auf der Grundlage des angegebenen Parameters für die Zeiteinheit

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

Parameter

TIME ist ein Datentyp, der zum Speichern von Zeitwerten in Stunden, Minuten, Sekunden und Sekundenbruchteilen verwendet wird. Der Wert wird als Textzeichenfolge gespeichert.

Der Zeitstempel, der als Ankerpunkt verwendet werden soll

PERIOD ist ein Textfeld (VARCHAR), das einen Zeitraum darstellt.

Die für die Erweiterung verwendete Zeitraumspalte

Rückgabewerte

Ein numerischer Wert, der das Zeitintervall zwischen zwei Daten angibt

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

5
Copy

WEEK_NUMBER_OF_QUARTER_ISO_UDF

Definition

Berechnet, in welche Wochennummer ein Datum innerhalb seines Quartals fällt, unter Verwendung der ISO-Kalenderstandards Diese Funktion verhält sich identisch mit der Teradata-Funktion WEEKNUMBER_OF_QUARTER(DATE, 'ISO').

PUBLIC.WEEK_NUMBER_OF_QUARTER_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, anhand dessen berechnet wird, in welche Woche des Quartals es fällt

Rückgabewerte

Eine Ganzzahl, die angibt, welche Woche des Quartals (1–13) dies darstellt.

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

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

NVP_UDF

Definition

Führt die gleiche Funktion aus wie die Teradata-FunktionNVP

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

Parameter

INSTRING VARCHAR

Name-Wert-Paare sind Datenelemente, die aus einem Namen und dem dazugehörigen Wert bestehen.

NAME_TO_SEARCH vom Typ VARCHAR

Der Namensparameter, der für die Suche innerhalb der Name-Wert-Paar-Funktion (NVP) verwendet wird

NAME_DELIMITERS VARCHAR

Das Zeichen, das verwendet wird, um Namen von ihren entsprechenden Werten zu trennen

VALUE_DELIMITERS VARCHAR

Das Zeichen, das verwendet wird, um einen Namen mit seinem entsprechenden Wert zu verbinden

OCCURRENCE steht für eine Gleitkommazahl, die angibt, wie oft etwas vorkommt.

Die Anzahl der übereinstimmenden Muster, nach denen gesucht werden soll

Rückgabewerte

Eine Textzeichenfolge (VARCHAR), die die gleichen Daten enthält wie die Eingabezeichenfolge

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

orange chicken
Copy

MONTH_SHORT_UDF

Definition

Gibt den abgekürzten Namen eines Monats (drei Buchstaben) in Großbuchstaben, Kleinbuchstaben oder in Großbuchstaben Ihrer Wahl zurück: Beispiel: „Jan“, „jan“ oder „JAN“.

PUBLIC.MONTH_SHORT_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum in einem Format, in dem der abgekürzte Monatsname angezeigt wird

RESULTCASE VARCHAR

Das zu verwendende Großbuchstaben-/Kleinbuchstaben-Format. Gültige Optionen sind:

  • ‚uppercase‘: Konvertiert Text in Großbuchstaben

  • ‚lowercase‘: Konvertiert Text in Kleinbuchstaben

  • ‚firstOnly‘: Schreibt nur den ersten Buchstaben groß

Rückgabewerte

Ein varchar mit dem abgekürzten Namen eines Monats (z. B. „Jan“, „Feb“ etc.).

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

OCT
oct
Oct
Copy

DATE_TO_INT_UDF

Definition

UDF (benutzerdefinierte Funktion), die einen Datumswert in seine numerische Darstellung konvertiert, ähnlich wie die Teradata-Funktion DATE-TO-NUMERIC

PUBLIC.DATE_TO_INT_UDF(DATE_TO_CONVERT DATE)
Copy

Parameter

DATE_TO_CONVERT steht für einen Datumswert, der umgewandelt werden muss

Konvertiert den Datumswert in ein Ganzzahlformat

Rückgabewerte

Gibt einen Datumswert im numerischen Format zurück

Beispiel

Eingabe:

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

Ausgabe:

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

Definition

Eine benutzerdefinierte Funktion (UDF), die den P_INTERSECT-Operator repliziert. Diese Funktion vergleicht zwei oder mehr Zeiträume und stellt fest, wo sie sich überschneiden und gibt das gemeinsame Zeitintervall zwischen ihnen zurück.

Erzeugt eine Zeichenfolgendarstellung der Start- und Endwerte eines Zeitraums (TIMESTAMP stellt einen Datentyp dar, der sowohl Datums- als auch Uhrzeitinformationen speichert. TIME oder DATE ist ein Datentyp, der zum Speichern von Kalenderdaten (Jahr, Monat und Tag) ohne Uhrzeitinformationen verwendet wird.) Diese Funktion emuliert die Periodenwert-Konstruktorfunktion von Teradata. Die Ausgabezeichenfolge folgt dem Standardformat von Snowflake für PERIOD-Werte. Um die Genauigkeit der Ausgabe anzupassen, können Sie entweder:

  • Den Sitzungsparameter timestamp_output_format ändern

  • Die Drei-Parameter-Version dieser UDF verwenden

Weitere Einzelheiten über die Quellfunktion finden Sie in der Teradata-Dokumentation.

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

Parameter

TIMESTAMP

Der Datentyp TimeStamp stellt einen bestimmten Zeitpunkt dar, der sowohl die Datums- als auch die Uhrzeitkomponente enthält.

TIME

Der Datentyp Time stellt eine bestimmte Tageszeit ohne eine Datumskomponente dar.

DATE

Der Datentyp Date stellt ein Kalenderdatum ohne Uhrzeitkomponente dar.

PRECISIONDIGITS gibt die Anzahl der Dezimalstellen an, die in numerischen Werten angezeigt werden sollen.

Die Anzahl der Ziffern, die im Uhrzeitformat angezeigt werden sollen

Rückgabewerte

Gibt eine Zeichenfolgendarstellung eines Wertes vom Typ PERIOD zurück

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

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)

Warnung

Dies ist die benutzerdefinierte Funktion (UDF), die zwei verschiedene Parametertypen akzeptiert.

Definition

Gibt den vollständigen Namen eines Wochentags in Großbuchstaben, Kleinbuchstaben oder Großbuchstaben zurück (z. B. „MONDAYׅ“, „monday“ oder „Monday“).

PUBLIC.DAYNAME_LONG_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Eingabedatum, aus dem der Wochentag ermittelt werden soll

RESULTCASE VARCHAR

Das erwartete Ergebnis oder Szenario, das demonstriert werden soll

Rückgabewerte

Gibt eine Zeichenfolge zurück, die den vollständigen Namen eines Wochentags enthält

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'TUESDAY'
'tuesday'
'Tuesday'
Copy

TD_DAY_OF_WEEK_COMPATIBLE_UDF

Definition

Verarbeitet einen Zeitstempel, um festzustellen, auf welchen Wochentag er fällt. Diese Funktion verhält sich identisch zu DAYNUMBER_OF_WEEK(DATE, 'COMPATIBLE').

PUBLIC.TD_DAY_OF_WEEK_COMPATIBLE_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Eingabedatum, das zur Bestimmung des Wochentags verwendet wird

Rückgabewerte

Gibt eine Zahl von 1 bis 7 zurück, die den Wochentag angibt, wobei 1 für den ersten Tag der Woche steht. Wenn der 1. Januar zum Beispiel auf einen Mittwoch fällt, dann ist Mittwoch = 1, Donnerstag = 2, Freitag = 3, Samstag = 4, Sonntag = 5, Montag = 6 und Dienstag = 7.

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

1, 6
Copy

JAROWINKLER_UDF

Definition

Berechnet anhand des Jaro-Winkler-Algorithmus, wie ähnlich zwei Zeichenfolgen sind. Dieser Algorithmus vergibt eine Punktzahl zwischen 0 (völlig unterschiedlich) und 1 (identisch).

PUBLIC.JAROWINKLER_UDF (string1 VARCHAR, string2 VARCHAR)
Copy

Parameter

string1 vom Typ VARCHAR

Der zu verarbeitende Text

string2 vom Typ VARCHAR

Der zu verarbeitende Text

Rückgabewerte

Die Funktion gibt entweder 0 oder 1 zurück.

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

0.770000
Copy

YEAR_BEGIN_ISO_UDF

Definition

UDF, die den ersten Tag des ISO-Jahres für ein bestimmtes Datum berechnet. Sie ermittelt den Montag, der dem 1. Januar des Jahres am nächsten liegt, mit der Funktion DAYOFWEEKISO in Kombination mit PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF. Die Funktion addiert oder subtrahiert Tage, um diesen Montag zu finden.

PUBLIC.YEAR_BEGIN_ISO_UDF(INPUT DATE)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, das den 1. Januar des laufenden Jahres nach dem ISO-Kalenderstandard darstellt

Rückgabewerte

Der erste Tag des Jahres nach dem ISO-Kalenderstandard

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

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

YEAR_PART_UDF

Definition

Extrahiert das Jahr aus einem Datum und kürzt es auf eine bestimmte Anzahl von Ziffern

PUBLIC.YEAR_PART_UDF(INPUT TIMESTAMP_TZ, DIGITS INTEGER)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, aus dem das Jahr extrahiert werden soll

DIGITS: Eine ganze Zahl, die die maximale Anzahl der anzuzeigenden Ziffern angibt

Die Anzahl der gewünschten Dezimalstellen in der Ausgabe

Rückgabewerte

Extrahiert die Jahreskomponente aus einem angegebenen Datum

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'021'
'21'
'1'
Copy

YEAR_WITH_COMMA_UDF

Definition

Extrahiert das Jahr aus einem Datum und fügt ein Komma zwischen der ersten und zweiten Ziffer ein. Wenn das Jahr zum Beispiel 2023 ist, wird „2,023“ zurückgegeben.

PUBLIC.YEAR_WITH_COMMA_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Eingabedatum, aus dem das Jahr extrahiert werden soll

Rückgabewerte

Gibt den Jahresanteil eines Datumswertes als varchar (Text) mit einem Komma als Trennzeichen zurück

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'2,021'
Copy

MONTHS_BETWEEN_UDF

Definition

Berechnet die Anzahl der Monate zwischen zwei Daten

MONTHS_BETWEEN_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
Copy

Parameter

FIRST_DATE ist eine Zeitstempelspalte, die sowohl Datums- als auch Uhrzeitinformationen enthält, mit Unterstützung der Zeitzone (TIMESTAMP_LTZ)

Das Anfangsdatum, ab dem die Funktion mit der Verarbeitung von Daten beginnt

SECOND_DATE TIMESTAMP_LTZ

Das Enddatum, das festlegt, wann die Zählung beendet wird

Rückgabewerte

Die Dauer in Monaten zwischen zwei Daten

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

12
Copy

SECONDS_PAST_MIDNIGHT_UDF

Definition

Berechnet die Anzahl der seit Mitternacht verstrichenen Sekunden für eine bestimmte Uhrzeit

PUBLIC.SECONDS_PAST_MIDNIGHT_UDF(INPUT TIME)
Copy

Parameter

INPUT TIME

Die Funktion berechnet die Gesamtzahl der seit Mitternacht (00:00:00) bis zur aktuellen Uhrzeit verstrichenen Sekunden.

Rückgabewerte

Ein varchar-Wert, der die Anzahl der seit Mitternacht verstrichenen Sekunden angibt

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'37845'
Copy

CHAR2HEXINT_UDF

Definition

Gibt eine Zeichenfolge zurück, die die Hexadezimaldarstellung (base-16) jedes Zeichens in der Eingabezeichenfolge enthält

PUBLIC.CHAR2HEXINT_UDF(INPUT_STRING VARCHAR);
Copy

Parameter

INPUT_STRING ist eine Variable vom Typ VARCHAR, die Textdaten speichert.

Die Eingabezeichenfolge, die konvertiert werden muss

Rückgabewerte

Gibt eine Zeichenfolge zurück, die die Hexadezimaldarstellung der Eingabezeichenfolge enthält

Beispiel

Eingabe:

SELECT CHAR2HEXINT('1234') from t1;
Copy

Ausgabe:

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

Weitere Informationen aus der Quellfunktion

Die Funktionsdokumentation finden Sie in der Teradata-Dokumentation.

INTERVAL_ADD_UDF

Definition

UDFs (benutzerdefinierte Funktionen), die Subtraktionsoperationen zwischen einem Intervallwert und einer Spaltenreferenz vom Typ Intervall verarbeiten

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

Parameter

INPUT_VALUE1 vom Typ VARCHAR

Die Eingabedaten, die vom System verarbeitet werden sollen

INPUT_PART1 vom Typ VARCHAR

Die zu verwendende Zeiteinheit, z. B. HOUR

INPUT_VALUE2 ist ein Parameter vom Datentyp VARCHAR.

Der Name der referenzierten Spalte, z. B. INTERVAL_HOUR_TYPE

INPUT_PART2 VARCHAR

Der Datentyp, der der referenzierten Spalte zugewiesen wurde

OP-Zeichen

Das Symbol oder der Operator, das bzw. der gerade analysiert wird

OUTPUT_PART VARCHAR

Der Datentyp des zurückgegebenen Wertes

Rückgabewerte

Ein varchar-Wert, der das Ergebnis der Subtraktion zweier Zeitintervalle darstellt

Migrationsbeispiel

Eingabe:

CREATE TABLE INTERVAL_TABLE
(
    INTERVAL_YEAR_TYPE INTERVAL YEAR
);

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

Ausgabe:

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

Definition

Eine benutzerdefinierte Funktion (UDF), die einen Zeitstempel in den vollständigen Namen des Tages konvertiert (z. B. „Monday“, „Tuesday“ usw.)

PUBLIC.DAY_OF_WEEK_LONG_UDF(INPUT_DATE TIMESTAMP)
Copy

Parameter

INPUT_DATE stellt einen Zeitstempelwert dar.

Der Zeitstempel wird in einen vollständigen Tagesnamen konvertiert (z. B. „Monday“, „Tuesday“ usw.).

Rückgabewerte

Der Name des Tages auf Englisch.

TD_WEEK_OF_CALENDAR_UDF

Definition

Die benutzerdefinierte Funktion (UDF) dient als direkter Ersatz für die Teradaa-Funktion TD_WEEK_OF_CALENDAR und bietet dieselbe Funktionalität in Snowflake.

PUBLIC.TD_WEEK_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Datum zur Berechnung der Anzahl der Wochen, die seit dem 1. Januar 1900 verstrichen sind

Rückgabewerte

Eine Ganzzahl, die die Anzahl der vollständigen Wochen zwischen dem 1. Januar 1900 und dem angegebenen Datum angibt

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF

Definition

Konvertiert negative Zahlen so, dass statt des Minuszeichens (-) spitze Klammern (< >) verwendet werden Diese Konvertierung erfolgt, wenn das Formatelement PR (Parentheses, Klammern) in der ursprünglichen Teradata-Formatzeichenfolge vorhanden ist.

PUBLIC.WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF(INPUT NUMBER, FORMATARG VARCHAR)
Copy

Parameter

INPUT ist ein numerischer Wert.

Der numerische Wert, der in eine Textzeichenfolge (varchar) umgewandelt wird

FORMATARG ist ein Parameter vom Typ VARCHAR, der das Format der Daten angibt.

Der Formatparameter gibt an, wie der INPUT-Wert in eine Textdarstellung (varchar) umgewandelt werden soll.

Rückgabewerte

Ein varchar mit negativen Zahlen in spitzen Klammern (< >)

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'8456'
'<8456>'
Copy

INSTR_UDF (STRING, STRING)

Warnung

Dies ist die benutzerdefinierte Funktion (UDF), die zwei verschiedene Parametersätze akzeptiert.

Definition

Sucht alle Instanzen, in denen „search_string“ im „source_string“ vorkommt.

PUBLIC.INSTR_UDF(SOURCE_STRING STRING, SEARCH_STRING STRING)
Copy

Parameter

SOURCE_STRING steht für die Eingabezeichenfolge, die verarbeitet werden muss.

Der Text, der gesucht werden soll

SEARCH_STRING ist ein Parameter vom Typ STRING, der den Text angibt, nach dem gesucht werden soll.

Das Textmuster, das die Funktion sucht und vergleicht

Rückgabewerte

Die Indexposition, an der das Muster in der Quellzeichenfolge gefunden wird (beginnend an Position 1)

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

2
Copy

TRANSLATE_CHK_UDF

Definition

Überprüft, ob der Code erfolgreich konvertiert werden kann, ohne Fehler zu erzeugen

PUBLIC.TRANSLATE_CHK_UDF(COL_NAME STRING, SOURCE_REPERTOIRE_NAME STRING)
Copy

Parameter

COL_NAME ist eine Zeichenfolgenvariable, die einen Spaltennamen darstellt.

Die Spalte, die validiert werden muss.

SOURCE_REPERTOIRE_NAME ist ein Zeichenfolgenparameter, der den Namen des Quellverzeichnisses angibt.

Der Name der Quellsammlung oder -bibliothek

Rückgabewerte

0: Die Übersetzung war erfolgreich und wurde ohne Fehler abgeschlossen. NULL: Es wurde kein Ergebnis zurückgegeben (Nullwert).

Die Position des ersten Zeichens in der Zeichenfolge verursacht einen Übersetzungsfehler.

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

0
Copy

EXPAND_ON_UDF

Bemerkung

Zur besseren Lesbarkeit haben wir einige Abschnitte des Codes in diesem Beispiel vereinfacht.

Definition

Repliziert das Verhalten der EXPAND-ON-Funktion von Teradata.

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

Parameter

TIME ist ein Datentyp, der Uhrzeitwerte als Text (STRING) speichert.

Die Zeit, die der Anker für die vollständige Erweiterung benötigt

SEQ: Sequenznummer

Die Reihenfolge, in der die Werte der einzelnen Zeilen berechnet werden

PERIOD: Ein Textwert, der einen Zeitraum darstellt

Das Datum des angegebenen Zeitraums

Rückgabewerte

Ein VARCHAR-Wert, der definiert, wie der Erweiterungszeitraum in der EXPAND-ON-Klausel berechnet werden soll

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

Definition

Gibt ein Array zurück, das fortlaufende Nummern von 1 bis zu dem von DIFF_TIME_PERIOD_UDF zurückgegebenen Wert enthält

PUBLIC.ROW_COUNT_UDF(NROWS DOUBLE)
Copy

Parameter

NROWS stellt die Gesamtzahl der Zeilen in einem Datenset als Dezimalzahl dar (DOUBLE).

Der von der Funktion DIFF_TIME_PERIOD_UDF zurückgegebene Wert

Rückgabewerte

Ein Array, das die Anzahl der Zeilen bestimmt, die erforderlich sind, um die Funktionalität der EXPAND ON-Klausel zu replizieren

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

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

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

Definition

Berechnet das Jahrhundert für ein bestimmtes Datum

PUBLIC.CENTURY_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Eingabedatum, das zur Bestimmung des Jahrhunderts verwendet wird

Rückgabewerte

Gibt die Jahrhundertzahl als varchar für ein bestimmtes Datum zurück

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'20'
Copy

TIME_DIFFERENCE_UDF

Warnung

Diese UDF ist veraltet, da Snowflake jetzt eine integrierte gleichwertige Funktion bietet. Weitere Einzelheiten entnehmen Sie bitte der TIMEDIFF-Dokumentation.

Definition

Berechnet das Zeitintervall zwischen zwei angegebenen Zeitstempeln

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

Parameter

MINUEND: Ein Zeitstempelwert, von dem subtrahiert wird

Die vom Ursprungswert zu subtrahierende Zeit

SUBTRAHEND: Der Zeitstempelwert, der von einem anderen Zeitstempel subtrahiert werden soll

Die Zeit wurde subtrahiert.

INPUT_PART ist eine Variable vom Typ VARCHAR, die Eingabedaten speichert.

EXTRACT_PART ist eine Variable vom Typ VARCHAR, die den extrahierten Teil einer Zeichenfolge speichert.

Extrahiert einen numerischen Wert aus einem Zeitintervall

Rückgabewerte

Ein Textwert (VARCHAR), der eine bestimmte Uhrzeit angibt

Beispiel

Eingabe:

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

Ausgabe:

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

INTERVAL_DIVIDE_UDF

Definition

Eine benutzerdefinierte Funktion (UDF), die Berechnungen zur Intervalldivision durchführt

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

Parameter

INPUT_PART ist eine Variable vom Typ VARCHAR, die den Eingabebereich der Daten darstellt.

Der Wert, der den Intervalltyp angibt, z. B. YEAR TO MONTH

INPUT_VALUE VARCHAR

Das zu teilende Zeitintervall

INPUT_DIV ist ein Ganzzahl-Wert, der den Eingabedivisor darstellt.

Die Zahl, die durch eine andere Zahl dividiert wird

Rückgabewerte

Die Ausgabe wird berechnet, indem ein Zeitintervall durch einen numerischen Wert dividiert wird.

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

DAYNUMBER_OF_MONTH_UDF

Definition

Die UDF bestimmt, auf welchen Tag des Monats ein bestimmter Zeitstempel fällt. Sie funktioniert ähnlich wie die Funktion DAYNUMBER_OF_MONTH(DATE, ‚ISO‘) von Teradata.

PUBLIC.DAYNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Ein Datumswert, der verwendet wird, um den entsprechenden Wochentag zu bestimmen

Rückgabewerte

Eine ganze Zahl von 1 bis 33 (einschließlich)

Beispiel

Eingabe:

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

Ausgabe:

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

LAST_DAY_DECEMBER_OF_ISO_UDF

Definition

UDF (benutzerdefinierte Funktion), die den 31. Dezember verarbeitet und das entsprechende ISO-Jahr zurückgibt. Diese Funktion wird als Komponente der PUBLIC.YEAR_END_IDO_UDF-Berechnung verwendet.

PUBLIC.LAST_DAY_DECEMBER_OF_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Um den letzten Tag des Dezembers im ISO-Jahresformat zu erhalten, verwenden Sie den 31. Dezember.

Rückgabewerte

Ein Datum, das den 31. Dezember im ISO-Jahresformat darstellt

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

2021-12-31
Copy

DATEADD_UDF

Bemerkung

Zur besseren Lesbarkeit haben wir einige Abschnitte des Codes in diesem Beispiel vereinfacht.

Definition

Funktion zum Berechnen der Summe von zwei Daten

PUBLIC.DATE_ADD_UDF(FIRST_DATE DATE, SECOND_DATE DATE)
Copy

Parameter

FIRST_DATE stellt eine Spalte vom Typ DATE dar.

Der anfängliche Datumswert, der einbezogen werden soll

SECOND_DATE stellt eine Spalte vom Typ DATE dar.

Addiert den zweiten Datumswert zusammen mit first_date.

Rückgabewerte

Das Ergebnis ist ein Datum, das aus der Kombination beider Eingabeparameter berechnet wird.

Beispiel

Eingabe:

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

Ausgabe:

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

Definition

Eine benutzerdefinierte Funktion (UDF), die ein julianisches Datumsformat (YYYYDDD) in ein Standarddatum des Gregorianischen Kalenders (YYYY-MM-DD) konvertiert

PUBLIC.JULIAN_TO_DATE_UDF(JULIAN_DATE CHAR(7))
Copy

Parameter

JULIAN_DATE CHAR: Ein Zeichendatentyp, der zum Speichern von Datumsangaben im julianischen Format verwendet wird

Das Datum, das aus dem julianischen Format konvertiert werden soll

Rückgabewerte

Gibt die Datumsdarstellung des julianischen Datums zurück oder null, wenn die Konvertierung nicht durchgeführt werden kann

Verwendungsbeispiel

Eingabe:

SELECT JULIAN_TO_DATE_UDF('2022045');
Copy

Ausgabe:

'2022-02-14'
Copy

Migrationsbeispiel

Eingabe:

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

Ausgabe:

SELECT
PUBLIC.JULIAN_TO_DATE_UDF('2020002');
Copy

FIRST_DAY_JANUARY_OF_ISO_UDF

Definition

Der erste Tag des Januars im Kalenderjahr ISO, der von der Funktion PUBLIC.YEAR_BEGIN_ISO_UDF zur Berechnung ihres Ergebnisses verwendet wird

FUNCTION PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, das den 1. Januar darstellt, im ISO-Kalenderjahrformat

Rückgabewerte

Ein Datum, das den 1. Januar des angegebenen ISO-Kalenderjahres darstellt.

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

2021-01-01
Copy

TIMESTAMP_DIFFERENCE_UDF

Definition

Subtrahieren zweier Daten mit einer benutzerdefinierten Funktion (UDF)

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

Unterschiede zwischen der Datums-/Uhrzeit-Subtraktion in Teradata und Snowflake

Teradata und Snowflake verwenden unterschiedliche Methoden zur Berechnung von Datum und Uhrzeit. Sie unterscheiden sich in ihrer Syntax, den Ausgabedatentypen und den Genauigkeitsstufen.

Warnung

Bei der Durchführung von Datumsberechnungen können die Ergebnisse aufgrund von Rundung oder Zeitzonenunterschieden um einen Tag abweichen.

Parameter

MINUEND – ein Zeitstempelwert, von dem subtrahiert wird, stellt den Zeitstempelwert dar, von dem subtrahiert wird.

Das Datum, das als Ausgangspunkt für die Subtraktion verwendet wird

SUBTRAHEND ist ein Zeitstempelwert, der von einem anderen Zeitstempel subtrahiert wird.

Das Datum wurde entfernt.

INPUT_PART ist eine Variable vom Typ VARCHAR (Zeichenfolge mit variabler Länge).

Teile, die zurückgegeben werden müssen

Rückgabewerte

Formatiert den Zeichenfolgenwert auf der Grundlage des angegebenen INPUT_PART-Parameters

Beispiel

Eingabe:

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

FIRST_DAY_OF_MONTH_ISO_UDF

Definition

Die benutzerdefinierte Funktion (UDF) gibt den ersten Tag eines bestimmten Monats im ISO-Format zurück (YYYY-MM-DD).

PUBLIC.FIRST_DAY_OF_MONTH_ISO_UDF(YEAR NUMBER, MONTH NUMBER)
Copy

Parameter

YEAR ist ein numerischer Datentyp, der zum Speichern eines vierstelligen Jahreswerts verwendet wird.

Ein numerischer Wert, der ein Kalenderjahr darstellt (z. B. 2023)

MONTH – ein numerischer Wert, der einen Monat darstellt (1–12)

Ein numerischer Wert (1-12), der einen Kalendermonat darstellt.

Rückgabewerte

Gibt den ersten Tag des aktuellen Monats im ISO-Format zurück (YYYY-MM-DD).

Beispiel

Bemerkung

Diese UDF ist eine Hilfsfunktion, die innerhalb der Funktion DAYNUMBER_OF_MONTH_UDF verwendet wird.

INT_TO_DATE_UDF

Definition

UDF, um numerische Werte in Datumswerte zu konvertieren (Teradata-Kompatibilitätsfunktion)

PUBLIC.INT_TO_DATE_UDF(NUMERIC_EXPRESSION INTEGER)
Copy

Parameter

NUMERIC_EXPRESSION stellt einen numerischen Wert oder einen Ausdruck dar, der zu einer Ganzzahl ausgewertet wird.

Ein Wert, der ein Datum in einem bestimmten Format darstellt, z. B. YYYY-MM-DD

Rückgabewerte

In ein Datumsformat konvertierte Zahl

Beispiel

Eingabe:

SELECT * FROM table1
WHERE date_column > 1011219
Copy

Ausgabe:

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

NULLIFZERO_UDF

Definition

Ersetzt Nullwerte durch NULL in den Daten, um Fehler bei der Division durch null zu vermeiden

PUBLIC.NULLIFZERO_UDF(NUMBER_TO_VALIDATE NUMBER)
Copy

Parameter

NUMBER_TO_VALIDATE NUMBER

Die Zahl, die validiert werden muss

Rückgabewerte

Gibt null zurück, wenn die eingegebene Zahl null ist; andernfalls wird die ursprüngliche Zahl zurückgegeben.

Verwendungsbeispiel

SELECT NULLIFZERO_UDF(0);
Copy

Ausgabe:

NULL
Copy

DATE_LONG_UDF

Definition

Konvertiert ein Datum in das Format „Tag, Monat DD, YYYY“ (zum Beispiel „Monday, January 01, 2024“). Dieses Format entspricht dem DL-Datumsformatelement von Teradata.

PUBLIC.DATE_LONG_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum sollte in einem langen Datumsformat angezeigt werden (zum Beispiel: „September 15, 2023“).

Rückgabewerte

Ein VARCHAR-Datentyp, der das Teradata-DL-Formatelement darstellt

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'Tuesday, October 26, 2021'
Copy

TD_MONTH_OF_CALENDAR_UDF

Definition

Die benutzerdefinierte Funktion (UDF) dient als Ersatz für die Teradata-Funktion TD_MONTH_OF_CALENDAR und bietet dieselbe Funktionalität.

PUBLIC.TD_MONTH_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Datum, das zur Berechnung der Anzahl der seit dem 1. Januar 1900 verstrichenen Monate verwendet wird

Rückgabewerte

Eine Ganzzahl, die die Anzahl der Monate zwischen dem 1. Januar 1900 und dem angegebenen Datum angibt

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

MONTH_NAME_LONG_UDF

Definition

Eine benutzerdefinierte Funktion (UDF), die einen Zeitstempel in den entsprechenden vollen Monatsnamen konvertiert

PUBLIC.MONTH_NAME_LONG_UDF(INPUT_DATE TIMESTAMP)
Copy

Parameter

INPUT DATE

Der Zeitstempel sollte so konvertiert werden, dass der vollständige Monatsname angezeigt wird.

Rückgabewerte

Der Name des Monats auf Englisch.

TD_DAY_OF_CALENDAR_UDF

Definition

Benutzerdefinierte Funktion (UDF), die die Teradata-Funktionalität TO_DAY_OF_CALENDAR repliziert

PUBLIC.TD_DAY_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Datum zur Berechnung der Anzahl der seit dem 1. Januar 1900 verstrichenen Tage

Rückgabewerte

Eine Ganzzahl, die die Anzahl der Tage zwischen dem 1. Januar 1900 und dem INPUT-Datum angibt

Migrationsbeispiel

Eingabe:

SELECT td_day_of_calendar(current_date)
Copy

Ausgabe:

SELECT
PUBLIC.TD_DAY_OF_CALENDAR_UDF(CURRENT_DATE());
Copy

PERIOD_TO_TIME_UDF

Definition

Funktion, die einen Teradata-PERIOD-Wert in einen TIME-Wert konvertiert, wobei das Umwandlungsverhalten von Teradata beibehalten wird

PERIOD_TO_TIME_UDF(PERIOD_VAL VARCHAR(22))
Copy

Parameter

PERIOD_VAL stellt einen Zeitraumwert dar.

Der Zeitraum, der konvertiert werden muss

Rückgabewerte

Die Funktion gibt einen TIME-Wert zurück, der die PERIOD darstellt. Wenn die Konvertierung nicht abgeschlossen werden kann, wird null zurückgegeben.

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

08:42:04
Copy

INSTR_UDF (STRING, STRING, DOUBLE, DOUBLE)

Warnung

Diese benutzerdefinierte Funktion (UDF) akzeptiert vier Eingabeparameter.

Definition

Sucht alle Instanzen, in denen „search_string“ im „source_string“ vorkommt.

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

Parameter

SOURCE_STRING steht für die Eingabezeichenfolge, die verarbeitet werden muss.

Die Textzeichenfolge, nach der gesucht werden soll.

SEARCH_STRING ist ein Textwert, nach dem Sie suchen möchten.

Das Textmuster, das die Funktion sucht und vergleicht

POSITION DOUBLE – ein numerischer Datentyp, der Dezimalzahlen mit doppelter Genauigkeit speichert.

Die Position im Text, an der die Suche beginnen soll (beginnend an Position 1)

OCCURRENCE DOUBLE – ein numerischer Datentyp, der die Anzahl des Auftretens eines Ereignisses darstellt und als Gleitkommazahl mit doppelter Genauigkeit gespeichert wird

Die Position im Text, an der die Suche beginnen soll (beginnend an Position 1)

Rückgabewerte

Die Indexposition, an der sich der angegebene Text in der Quellzeichenfolge befindet

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

20
Copy

ROUND_DATE_UDF

Definition

Eine benutzerdefinierte Funktion (UDF), die einen DATE_VALUE verarbeitet, indem sie den Uhrzeitanteil auf eine bestimmte Einheit rundet (UNIT_TO_ROUND_BY). Diese Funktion ist vergleichbar mit der Teradata-Funktion ROUND(date).

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

Parameter

DATE_TO_ROUND TIMESTAMP_TZ – ein Zeitstempelwert mit Zeitzoneninformationen, der gerundet werden muss

Der Datumswert, der gerundet werden muss

UNIT_TO_ROUND_BY VARCHAR – gibt die Zeiteinheit an, die für die Rundung verwendet wird

Die Zeiteinheit, die für die Rundung des Datums verwendet wird

Rückgabewerte

Gibt ein auf die angegebene Zeiteinheit gerundetes Datum zurück Der Parameter UNIT_TO_ROUND_BY bestimmt, wie das Datum gerundet werden soll.

Migrationsbeispiel

Eingabe:

SELECT ROUND(CURRENT_DATE, 'RM') RND_DATE
Copy

Ausgabe:

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

SUBSTR_UDF (STRING, FLOAT, FLOAT)

Warnung

Dies ist die benutzerdefinierte Funktion (UDF), die drei Parameter akzeptiert.

Definition

Ruft einen Teil des Textes aus einer angegebenen Zeichenfolge unter Verwendung von Anfangs- und Endpositionen ab

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

Parameter

BASE_EXPRESSION ist ein Zeichenfolgenparameter, der den Basisausdruck definiert.

Der Quelltext, aus dem Sie einen Teil extrahieren möchten

START_POSITION ist eine Gleitkommazahl, die die Anfangsposition definiert.

Die Position, an der Sie mit der Extraktion der Zeichen aus der Zeichenfolge beginnen möchten

LENGTH ist eine Gleitkommazahl, die den Längenwert darstellt.

Die Position, an der Sie mit der Extraktion der Zeichen aus der Zeichenfolge beginnen möchten

Rückgabewerte

Die Teilzeichenfolge, die enthalten sein muss

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

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

GETQUERYBANDVALUE_UDF (VARCHAR)

Warnung

Dies ist die benutzerdefinierte Funktion (UDF), die einen Parameter akzeptiert.

Definition

Gibt einen Wert aus einem im Transaktions-, Sitzungs- oder Profilabfrageband gespeicherten Name-Wert-Paar zurück.

GETQUERYBANDVALUE_UDF(SEARCHNAME VARCHAR)
Copy

Parameter

SEARCHNAME VARCHAR – eine Variable vom Typ VARCHAR, die zum Speichern von Suchbegriffen oder Namen verwendet wird

Der Name, nach dem in den Schlüssel-Wert-Paaren gesucht werden soll

Rückgabewerte

Der name-Schlüsselwert des Sitzungsabfragebandes oder null, falls nicht vorhanden.

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

security
Copy

Migrationsbeispiel

Eingabe:

SELECT GETQUERYBANDVALUE(1, 'group');
Copy

Ausgabe:

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

Definition

Benutzerdefinierte Funktion (UDF), die die volle Wochennummer eines bestimmten Datums innerhalb des Jahres berechnet. Diese Funktion bietet die gleiche Funktionalität wie die Funktionen TD_WEEK_OF_YEAR und WEEKNUMBER_OF_YEAR von Teradata.

PUBLIC.TD_WEEK_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Datum, das für die Berechnung der Wochennummer verwendet wird

Rückgabewerte

Ein numerischer Wert, der angibt, in welche Woche des Jahres das angegebene Datum fällt

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

18, 0
Copy

EXTRACT_TIMESTAMP_DIFFERENCE_UDF

Bemerkung

Für eine bessere Lesbarkeit haben wir die Codebeispiele vereinfacht, indem wir nur die wichtigsten Teile zeigen.

Definition

Ruft den Teil „Data“ aus dem Ergebnis der Subtraktion des SUBTRAHEND vom MINUEND ab

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

Unterschiede zwischen der Datums-/Uhrzeitextraktion in Teradata und Snowflake

Teradata- und Snowflake-Funktionen können unterschiedliche Parameteranforderungen haben und unterschiedliche Datentypen zurückgeben.

  • Parameter: Der wichtigste Unterschied zwischen den EXTRACT-Funktionen von Teradata und Snowflake ist, dass Snowflake nur mit Datums- und Uhrzeitangaben arbeitet, während Teradata auch Intervalle unterstützt. Weitere Einzelheiten finden Sie in der Dokumentation der EXTRACT-Funktion von Snowflake und in der Dokumentation der EXTRACT-Funktion in Teradata.

  • Rückgabetyp: Die Funktionen geben Werte auf unterschiedliche Weise zurück: EXTRACT von Teradata gibt entweder eine Ganzzahl oder decimal(8, 2) zurück, während EXTRACT von Snowflake eine Zahl zurückgibt, die den angeforderten Datums-Uhrzeit-Teil darstellt.

Die Teradata- und Snowflake-Funktionen können unterschiedliche Eingabeparameter und Ausgabetypen haben.

Parameter

MINUEND TIMESTAMP

Das Datum, das als Ausgangspunkt für die Subtraktion verwendet wird

SUBTRAHEND: Der Zeitstempelwert, der von einem anderen Zeitstempel subtrahiert werden soll

Das Datum wurde entfernt.

INPUT_PART VARCHAR

Das formatierte varchar muss mit dem ursprünglich angeforderten Teil übereinstimmen (identisch mit TIMESTAMP_DIFERENCE INPUT_PART) und einer der folgenden Werte sein:

  • 'DAY TO HOUR'

  • 'DAY TO MINUTE'

  • 'DAY TO SECOND'

  • 'DAY TO MINUTE'

  • 'HOUR TO MINUTE'

  • 'HOUR TO SECOND'

  • 'MINUTE TO SECOND'

EXTRACT_PART ist vom VARCHAR-Datentyp und stellt den extrahierten Teil einer Zeichenfolge dar.

Die Zeiteinheit für die Extraktion muss einer der folgenden Werte sein: 'DAY', 'HOUR', 'MINUTE', oder 'SECOND'. Die angeforderte Zeiteinheit sollte innerhalb des eingegebenen Zeitintervalls liegen.

Rückgabewerte

Die Anzahl der Anfragen, die in den Extraktionsprozess einbezogen wurden

Beispiel

Eingabe:

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

Ausgabe:

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

JSON_EXTRACT_DOT_NOTATION_UDF

Definition

Eine benutzerdefinierte Funktion (UDF), mit der Sie JSON-Objekte unter Verwendung der Punktnotation abfragen können, ähnlich wie Sie auf verschachtelte Eigenschaften in JavaScript oder Python zugreifen würden.

JSON_EXTRACT_DOT_NOTATION_UDF(JSON_OBJECT VARIANT, JSON_PATH STRING)
Copy

Unterschiede zwischen der Teradata-JSON Entitätsreferenz (Punktnotation) und der Snowflake-JSON-Abfragemethode

Teradata und Snowflake verwenden unterschiedliche Methoden, um JSON-Daten zu durchlaufen. Teradata verwendet einen JavaScript-basierten Ansatz mit Punktnotation, Array-Indizierung und speziellen Operatoren wie Platzhalterzugriff und Doppelpunktnotation. Im Gegensatz dazu verfügt Snowflake über eingeschränktere JSON-Durchlauffunktionen und unterstützt nur den direkten Elementzugriff und direkte Array-Indizierung.

Parameter

JSON_OBJECT – ein Datentyp, der ein JSON-Objekt darstellt, das verschachtelte Schlüssel-Wert-Paare mit unterschiedlichen Datentypen enthalten kann

Das JSON-Objekt, das die Werte enthält, die Sie extrahieren möchten

JSON_PATH – ein Zeichenfolgenparameter, der den Pfad zum Extrahieren von Daten aus einem JSON-Dokument angibt

Die Position im JSON_OBJECT, an der die Werte gefunden werden können, angegeben in JSON-Pfadnotation

Rückgabewerte

Die Datenelemente im JSON_OBJECT, die mit dem angegebenen JSON_PATH übereinstimmen

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

WEEK_OF_MONTH_UDF

Definition

Berechnet, in welche Woche des Monats ein bestimmtes Datum fällt

PUBLIC.WEEK_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, das verwendet wird, um zu bestimmen, in welche Woche des Monats es fällt

Rückgabewerte

Eine VARCHAR-Spalte, die anzeigt, in welche Woche des Monats ein bestimmtes Datum fällt

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'4'
Copy

DAYNAME_LONG_UDF (TIMESTAMP_TZ)

Warnung

Dies ist die benutzerdefinierte Funktion (UDF), die einen Parameter akzeptiert.

Definition

UDF, die eine Variante der DAYNAME_LONG_UDF-Funktion erstellt, die Tagesnamen mit dem ersten Buchstaben in Großbuchstaben zurückgibt (Standardformat)

PUBLIC.DAYNAME_LONG_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, anhand dessen Sie den Wochentag ermitteln möchten

Rückgabewerte

Gibt eine Zeichenfolge zurück, die den vollständigen Namen eines Wochentags enthält

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'Thursday'
Copy

INTERVAL_TO_MONTHS_UDF

Definition

Konvertiert ein Zeitintervall in Monate

PUBLIC.INTERVAL_TO_MONTHS_UDF
(INPUT_VALUE VARCHAR())
Copy

Parameter

INPUT_VALUE VARCHAR

Der Zeitraum, der in Monate umgewandelt wird

Rückgabewerte

Die Anzahl der zu verarbeitenden Monate, angegeben als Ganzzahl

GETQUERYBANDVALUE_UDF (VARCHAR, FLOAT, VARCHAR)

Warnung

Diese benutzerdefinierte Funktion (UDF) akzeptiert drei Parameter.

Definition

Gibt einen Wert aus einem im Transaktions-, Sitzungs- oder Profilabfrageband gespeicherten Name-Wert-Paar zurück. Der Wert ist mit einem bestimmten Namen im Abfrageband verknüpft.

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

Parameter

QUERYBAND ist vom Datentyp VARCHAR und speichert Abfragebandinformationen.

Das Abfrageband kombiniert Transaktions-, Sitzungs- und Profilabfragebänder in einer einzigen Zeichenfolge.

SEARCHTYPE ist ein Gleitkommazahl-Datentyp.

Die maximale Tiefe, in der nach übereinstimmenden Paaren gesucht werden soll.

0 steht für einen Platzhalterwert, der mit jeder Eingabe übereinstimmt.

Eine Transaktion stellt eine einzelne Arbeitseinheit in einer Datenbank dar.

Ein Sitzungsobjekt stellt eine Verbindung mit Snowflake dar.

3 = Profil erstellen

SEARCHNAME VARCHAR

Der Name, nach dem in den Schlüssel-Wert-Paaren gesucht werden soll

Rückgabewerte

Gibt den Wert des name-Schlüssels auf der angegebenen Ebene in der Hierarchie zurück. Wenn kein Wert gefunden wird, wird null zurückgegeben.

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

      Matt
      SaraDB
      DbAdmin
      NULL
Copy

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

Definition

Berechnet die julianische Tageszahl, die die kontinuierliche Zählung der Tage seit dem 1. Januar 4713 BCE (Before Common Era, vor unserer Zeitrechnung) darstellt. Der Julianische Tag wird in der Astronomie und bei Kalenderberechnungen verwendet.

PUBLIC.JULIAN_DAY_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, das in eine julianische Tageszahl konvertiert wird

Rückgabewerte

Ein varchar-Wert, der das berechnete julianische Datum darstellt

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'2459514'
Copy

WEEKNUMBER_OF_MONTH_UDF

Definition

Identifiziert den Monat anhand eines bestimmten Datums

PUBLIC.WEEKNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, aus dem die Monatszahl berechnet wird

Rückgabewerte

Ein numerischer Wert, der den Monat (1–12) eines bestimmten Datums angibt

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

3
Copy

JSON_EXTRACT_UDF

Definition

Eine benutzerdefinierte Funktion (UDF), die das Verhalten der Funktionen JSONExtract, JSONExtractValue und JSONExtractLargeValue imitiert. Diese UDF ermöglicht es Ihnen, mehrere Werte aus einem JSON-Objekt zu extrahieren.

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

Parameter

JSON_OBJECT ist von einem Datentyp, der JSON-formatierte Daten in einem strukturierten Format speichert.

Das JSON-Objekt, das die Werte enthält, die Sie extrahieren möchten

JSON_PATH – eine Zeichenfolge, die den Pfad zum Extrahieren von Daten aus einem JSON-Dokument angibt

Die Position im JSON_OBJECT, an der die gewünschten Werte zu finden sind, angegeben in JSON-Pfadnotation

SINGLE_VALUE – ein boolesches Flag, das angibt, ob ein einzelner Wert oder mehrere Werte zurückgegeben werden sollen

BOOLEAN-Parameter: Wenn er auf true gesetzt ist, gibt er einen einzelnen Wert zurück (erforderlich für die Funktionen JSONExtractValue und JSONExtractLargeValue). Wenn false, wird ein Array von Werten zurückgegeben (wird mit JSONExtractverwendet).

Rückgabewerte

Die Datenwerte, die unter dem angegebenen JSON-Pfad im JSON-Objekt gefunden wurden.

Migrationsbeispiel

Eingabe:

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

Ausgabe:

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

COMPUTE_EXPAND_ON_UDF

Definition

Bestimmt, wie die Daten auf der Grundlage des angegebenen Zeitraumtyps erweitert werden sollen

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

Parameter

TIME STRING

Der im Anker verwendete Zeitstempel

SEQ: Sequenznummer

Die Reihenfolge, in der die Berechnungen der einzelnen Zeilen durchgeführt werden

PERIOD stellt einen Zeitstempelwert dar, der einen bestimmten Zeitpunkt angibt.

Das Datum des angegebenen Zeitraums

PERIODTYPE ist ein Zeichenfolgenwert, der den Typ des Zeitraums definiert.

Der für die Berechnung verwendete Zeitraum (entweder BEGIN oder END)

Rückgabewerte

Ein Zeitstempel, der angibt, wann jede Zeile in der EXPAND-ON-Operation verarbeitet wurde

Beispiel

Warnung

Diese UDF ist eine abgeleitete Funktion, die die Funktionalität von EXPAND_ON_UDF erweitert.

WEEK_NUMBER_OF_QUARTER_UDF

Definition

Gibt die Wochennummer innerhalb des aktuellen Quartals für ein bestimmtes Datum zurück. Diese Funktion verhält sich genauso wie die Funktion WEEKNUMBER_OF_QUARTER(DATE, 'ISO') von Teradata, die das ISO-Kalendersystem verwendet.

PUBLIC.WEEK_NUMBER_OF_QUARTER_UDF(INPUT TIMESTAMP_TZ)
Copy

Parameter

INPUT TIMESTAMP_TZ

Das Datum, anhand dessen berechnet wird, in welche Woche des Quartals es fällt

Rückgabewerte

Eine Ganzzahl, die angibt, welche Woche des Quartals (1–13) referenziert wird

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

1, 4
Copy

YEAR_END_ISO_UDF

Definition

Benutzerdefinierte Funktion (UDF), die den letzten Tag des Jahres für ein bestimmtes Datum unter Verwendung der ISO-Kalenderstandards berechnet, ähnlich wie die Funktion TD_YEAR_END von Teradata

PUBLIC.YEAR_END_ISO_UDF(INPUT date)
Copy

Parameter

INPUT DATE

Das Datum, das den letzten Tag des Jahres nach dem ISO-Kalenderstandard darstellt

Rückgabewerte

Der letzte Tag des Jahres nach dem ISO-Kalendersystem

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

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

INSERT_CURRENCY_UDF

Definition

Fügen Sie das Währungssymbol direkt vor der ersten Ziffer der Zahl ein, und achten Sie darauf, dass sich zwischen dem Währungssymbol und der Zahl keine Leerzeichen oder Symbole befinden.

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

Parameter

INPUT VARCHAR

Die Ausgabe von TO_CHAR bei der Konvertierung eines numerischen Wertes, der eine Währungsformatierung erfordert

CURRENCYINDEX ist ein Ganzzahl-Wert, der den Index einer Währung darstellt.

Die Position im Array, an der die Währung eingefügt werden soll

CURRENCYVALUE – ein VARCHAR-Feld, das Währungswerte speichert

Der Text, der als Währungswert verwendet werden soll

Rückgabewerte

Ein varchar-Feld, das den Währungstext an einer bestimmten Position enthält

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

'+CRC823'
Copy

INSTR_UDF (STRING, STRING, INT)

Warnung

Diese benutzerdefinierte Funktion (UDF) akzeptiert drei Parameter.

Definition

Sucht alle Instanzen, in denen „search_string“ im „source_string“ vorkommt.

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

Parameter

SOURCE_STRING stellt einen Zeichenfolgenwert dar, der als Eingabe verwendet wird.

Der Text, der gesucht werden soll

SEARCH_STRING ist ein Textwert, nach dem Sie suchen möchten.

Das Textmuster, das die Funktion sucht und vergleicht

POSITION ist ein Ganzzahl-Datentyp, der eine Position in einer Sequenz darstellt.

Die Position im Text, an der die Suche beginnt (beginnend an Position 1)

Rückgabewerte

Die Position in der ursprünglichen Zeichenfolge, an der die Übereinstimmung gefunden wurde

Verwendungsbeispiel

Eingabe:

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

Ausgabe:

8
Copy