SnowConvert: Teradata에 대한 함수 참조

QUARTERNUMBER_OF_YEAR_UDF

정의

UDF (사용자 정의 함수)는 Teradata의 QUARTERNUMBER_OF_YEAR_UDF (날짜, ‘ISO’) 함수와 유사하게 ISO 연도에 따라 지정된 날짜의 분기 수를 계산하는 함수입니다.

PUBLIC.QUARTERNUMBER_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT 시간STAMP_TZ

분기 번호를 추출하는 방법입니다.

반환

해당 날짜가 1년 중 어느 분기에 해당하는지를 나타내는 정수(1~4)입니다.

사용법 예

입력:

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

출력:

4, 1
Copy

DAYNUMBER_OF_YEAR_UDF

정의

지정된 타임스탬프의 연도 내 요일 번호를 반환합니다. 일 수는 1에서 365(윤년의 경우 366)까지입니다. 이 함수는 DAYNUMBER_OF_YEAR(DATE, ‘ISO’)와 동일한 방식으로 작동합니다.

PUBLIC.DAYNUMBER_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

날짜에서 연도의 일 번호를 가져옵니다.

반환

1~371 사이의 정수입니다.

입력:

SELECT DAYNUMBER_OF_YEAR(CURRENT_DATE,'ISO');
Copy

출력:

SELECT
PUBLIC.DAYNUMBER_OF_YEAR_UDF(CURRENT_DATE());
Copy

SUBSTR_UDF (STRING, FLOAT)

경고

이 사용자 정의 함수(UDF)는 2개의 매개 변수(오버로드된 함수)를 허용합니다.

정의

시작 위치와 길이를 사용하여 지정된 문자열에서 텍스트의 일부를 검색합니다.

PUBLIC.SUBSTR_UDF(BASE_EXPRESSION STRING, START_POSITION FLOAT)
Copy

매개 변수

BASE_EXPRESSION 은 작업의 기본 식을 정의하는 문자열 매개 변수입니다.

일부를 추출하려는 소스 텍스트입니다.

START_POSITION - 입력 문자열에서 시작 위치를 지정하는 부동 소수점 숫자입니다.

문자열에서 문자 추출을 시작할 위치입니다.

반환

반드시 포함해야 하는 하위 문자열입니다.

마이그레이션 예시

입력:

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

출력:

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

CHKNUM_UDF

정의

문자열에 유효한 숫자 값이 포함되어 있는지 확인합니다.

PUBLIC.CHKNUM_UDF(NUM STRING);
Copy

매개 변수

NUM 숫자를 나타내는 문자열입니다

유효성을 검사해야 하는 텍스트 문자열입니다.

반환

입력된 매개 변수가 유효한 숫자 값이면 1을 반환합니다. 입력한 숫자가 유효한 숫자(예: 텍스트 또는 특수 문자)가 아닌 경우 0을 반환합니다.

SELECT CHKNUM('1032');
Copy

출력:

SELECT
PUBLIC.CHKNUM_UDF('1032');
Copy

TD_YEAR_END_UDF

정의

UDF (사용자 정의 함수)는 지정된 날짜의 연도 마지막 날을 반환하는 Teradata의 TD_YEAR_END(DATE) 또는 TD_YEAR_END(DATE, ‘COMPATIBLE’) 함수를 복제합니다.

PUBLIC.TD_YEAR_END_UDF(INPUT date)
Copy

매개 변수

INPUT DATE

현재 연도의 마지막 날을 가져옵니다.

반환

12월의 마지막 날(12월 31일).

사용법 예

입력:

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

출력:

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

PERIOD_OVERLAPS_UDF

정의

OVERLAPS OPERATOR 기능을 구현하는 사용자 정의 함수(UDF)입니다. 이 함수는 2개 이상의 기간을 비교하여 겹치는 시간 범위가 있는지 확인합니다.

PERIOD_OVERLAPS_UDF(PERIODS ARRAY)
Copy

매개 변수

PERIODS 는 기간을 포함하는 배열입니다

비교할 모든 기간 식입니다.

반환

세트의 모든 기간에 공통 요소가 1개 이상 있는 경우(중첩) TRUE, 그렇지 않은 경우 FALSE.

마이그레이션 예시

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

출력:

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

정의

지정된 날짜가 현재 분기 내에서 어느 주에 해당하는지 계산합니다.

PUBLIC.WEEK_NUMBER_OF_QUARTER_COMPATIBLE_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

분기 중 어느 주에 해당하는지 계산하는 데 사용되는 날짜입니다.

반환

해당 날짜가 속한 분기의 몇 번째 주(1~13)인지를 나타내는 정수입니다.

사용법 예

입력:

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

출력:

5, 1
Copy

ROMAN_NUMERALS_MONTH_UDF

정의

날짜를 해당 월에 해당하는 로마 숫자로 변환합니다.

PUBLIC.ROMAN_NUMERALS_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

월을 추출할 입력 날짜입니다.

반환

지정된 날짜에서 추출한 월을 나타내는 varchar 입니다.

사용법 예

입력:

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

출력:

'X'
Copy

TD_YEAR_BEGIN_UDF

정의

지정된 날짜의 연초를 반환하여 TD_YEAR_BEGIN 또는 TD_YEAR_BEGIN(DATE, ‘COMPATIBLE’)의 동작을 모방하는 사용자 정의 함수(UDF)입니다.

PUBLIC.TD_YEAR_BEGIN_UDF(INPUT DATE)
Copy

매개 변수

INPUT DATE

현재 연도의 첫날을 가져옵니다.

반환

1월의 첫날.

사용법 예

입력:

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

출력:

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

FULL_MONTH_NAME_UDF

정의

전체 대문자, 전체 소문자 또는 첫 글자만 대문자로 표시하는 등 원하는 형식으로 월의 전체 이름을 반환합니다.

PUBLIC.FULL_MONTH_NAME_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

매개 변수

INPUT TIMESTAMP_TZ

날짜 형식은 월 이름을 표시해야 합니다.

RESULTCASE VARCHAR

결과를 표시할 형식입니다. 유효한 옵션은 ‘대문자’, ‘소문자’ 또는 ‘첫 글자 대문자’입니다.

반환

월의 전체 이름이 포함된 varchar 을 반환합니다.

사용법 예

입력:

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

출력:

OCTOBER
october
October
Copy

TO_BYTES_HEX_UDF

정의

소수점(base 10)을 16진수(base 16) 표현으로 변환합니다.

TO_BYTES_HEX_UDF(INPUT FLOAT)
Copy

매개 변수

INPUT 은 부동 소수점 숫자 매개 변수입니다.

16진수 형식으로 변환할 숫자입니다.

반환

16진수 값을 나타내는 문자열입니다.

사용법 예

입력:

SELECT TO_BYTES_HEX_UDF('448');
Copy

출력:

01c0
Copy

PERIOD_INTERSECT_UDF

정의

P_INTERSECT 연산자를 복제하는 사용자 정의 함수(UDF)입니다. 이 함수는 2개 이상의 기간을 비교하고 겹치는 부분을 식별하여 그 사이의 공통 시간 간격을 반환합니다.

소스 함수에 대한 자세한 내용은 설명서를 참고하시기 바랍니다.

PERIOD_INTERSECT_UDF(PERIODS ARRAY)
Copy

매개 변수

PERIODS 는 기간을 포함하는 배열입니다.

비교해야 하는 모든 기간 식입니다.

반환

두 기간이 교차하거나 공통 날짜를 공유하는 섹션입니다.

마이그레이션 예시

입력:

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

출력:

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

정의

시간 간격을 초 단위로 변환합니다.

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

매개 변수

INPUT_PART 는 입력 데이터를 저장하는 VARCHAR 타입의 변수입니다.

초 단위로 변환할 시간 기간입니다.

INPUT_VALUEVARCHAR - 텍스트 데이터를 허용하는 입력 변수입니다. - 텍스트 데이터를 허용하는 입력 변수입니다.

변환을 위한 시간 간격 유형입니다. 예를 들어, ‘DAY’, ‘DAY TO HOUR’ 및 기타 유효한 간격 유형이 있습니다.

반환

시간 간격을 초 단위로 나타내는 소수점 숫자입니다.

TIMESTAMP_ADD_UDF

정의

2개의 타임스탬프를 1개의 값으로 결합합니다.

PUBLIC.TIMESTAMP_ADD_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
Copy

매개 변수

FIRST_DATE 는 날짜 및 시간 정보를 모두 포함하는 타임스탬프 필드이며 시간대(TIMESTAMP_LTZ)를 지원합니다

이 항목이 추가된 초기 날짜입니다.

SECOND_DATE 는 타임존 정보가 포함된 타임스탬프 열입니다 (TIMESTAMP_LTZ) (현지 타임존이 있는 타임스탬프)

항목이 두 번째로 추가된 날짜입니다.

반환

입력 날짜 매개 변수를 결합하여 생성된 타임스탬프입니다.

INTERVAL_MULTIPLY_UDF

정의

시간 간격에 따라 곱셈 작업을 수행하는 사용자 정의 함수(UDF)입니다.

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

매개 변수

INPUT_PART 는 입력 데이터를 저장하는 VARCHAR 타입의 변수입니다.

곱셈에 사용되는 값으로, ‘YEAR TO MONTH’로 지정됩니다.

INPUT_VALUE VARCHAR

곱할 간격입니다.

INPUT_MULT 는 입력 값의 승수 역할을 하는 정수 매개 변수입니다.

곱셈 작업에 사용할 숫자입니다.

반환

출력은 시간 간격에 숫자 값을 곱하여 계산됩니다.

마이그레이션 예시

입력:

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

출력:

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

TD_DAY_OF_WEEK_UDF

정의

Teradata의 TD_DAY_OF_WEEK 기능을 복제하는 사용자 정의 함수(UDF)입니다. 원래 Teradata 함수에 대한 자세한 내용은 여기 를 참조하십시오.

PUBLIC.TD_DAY_OF_WEEK_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

요일을 가져올 날짜입니다.

반환

요일을 나타내는 1~7 사이의 정수입니다.

  • 1 = 일요일

  • 2 = 월요일

  • 3 = 화요일

  • 4 = 수요일

  • 5 = 목요일

  • 6 = 금요일

  • 7 = 토요일

마이그레이션 예시

입력:

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

출력:

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

ISO_YEAR_PART_UDF

정의

지정된 날짜로부터 ISO 달력 연도를 계산합니다. 유지할 자릿수를 지정하면 결과를 더 짧게 생성할 수 있습니다.

PUBLIC.ISO_YEAR_PART_UDF(INPUT TIMESTAMP_TZ, DIGITS INTEGER)
Copy

매개 변수

INPUT TIMESTAMP_TZ

ISO 연도를 추출할 날짜입니다.

DIGITS 표시할 최대 자릿수를 나타내는 정수입니다

출력에서 원하는 소수점 이하 자릿수입니다.

반환

지정된 날짜의 ISO 연도를 나타내는 문자열(varchar)을 반환합니다.

사용법 예

입력:

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

출력:

'021'
'21'
'1'
Copy

DIFF_TIME_PERIOD_UDF

정의

지정된 시간 단위 매개 변수를 기준으로 두 날짜 사이의 시간 간격을 계산합니다.

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

매개 변수

TIME 은 시간, 분, 초, 분 단위로 시간 값을 저장하는 데 사용되는 데이터 타입입니다. 는 텍스트 문자열로 저장된 시간 값을 나타내는 데이터 타입입니다.

앵커 포인트로 사용할 타임스탬프입니다.

PERIOD 기간을 나타내는 텍스트 필드(VARCHAR)입니다

확장에 사용되는 기간 열입니다.

반환

두 날짜 사이의 시간 간격을 나타내는 숫자 값입니다.

사용법 예

입력:

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

출력:

5
Copy

WEEK_NUMBER_OF_QUARTER_ISO_UDF

정의

ISO 달력 기준을 사용하여 날짜가 해당 분기 내에서 어느 주에 해당하는지 계산합니다. 이 함수는 Teradata의 WEEKNUMBER_OF_QUARTER(DATE, 'ISO') 함수와 동일하게 작동합니다.

PUBLIC.WEEK_NUMBER_OF_QUARTER_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

분기 중 어느 주에 해당하는지 계산하는 데 사용되는 날짜입니다.

반환

분기 중 어느 주(1~13)를 나타내는 정수입니다.

사용법 예

입력:

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

출력:

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

NVP_UDF

정의

Teradata의 NVP 함수 와 동일한 함수를 수행합니다.

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

매개 변수

INSTRING VARCHAR

이름-값 쌍은 이름과 해당 값으로 구성된 데이터 요소입니다.

VARCHAR 유형의 NAME_TO_SEARCH

이름-값 쌍(NVP) 함수 내에서 검색하는 데 사용되는 이름 매개 변수입니다.

NAME_DELIMITERS VARCHAR

이름과 해당 값을 구분하는 데 사용되는 문자입니다.

VALUE_DELIMITERS VARCHAR

이름과 해당 값을 연결하는 데 사용되는 문자입니다.

OCCURRENCE 는 어떤 항목이 몇 번 발생하는지를 나타내는 부동 소수점 숫자를 나타냅니다

검색할 일치하는 패턴의 수입니다.

반환

입력 문자열과 동일한 데이터를 포함하는 텍스트 문자열(VARCHAR)입니다.

사용법 예

입력:

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

출력:

orange chicken
Copy

MONTH_SHORT_UDF

정의

대문자, 소문자, 첫 글자 대문자 중 원하는 형식으로 월의 약칭 이름(3자)을 반환합니다. 예를 들어, 예: “Jan”, “jan”또는 “JAN”.

PUBLIC.MONTH_SHORT_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

매개 변수

INPUT TIMESTAMP_TZ

축약된 월 이름을 표시하는 형식의 날짜입니다.

RESULTCASE VARCHAR

사용할 대/소문자 형식입니다. 유효한 옵션은 다음과 같습니다.

  • ‘uppercase’: 텍스트를 모든 대문자로 변환합니다

  • ‘lowercase’: 텍스트를 모든 소문자로 변환합니다

  • ‘firstOnly’: 첫 글자만 대문자 사용

반환

월의 축약된 이름(예: “Jan”, “Feb” 등)이 포함된 varchar 입니다.

사용법 예

입력:

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

출력:

OCT
oct
Oct
Copy

DATE_TO_INT_UDF

정의

UDF (사용자 정의 함수)는 날짜 값을 숫자 표현으로 변환하는 함수로, Teradata의 DATE-TO-NUMERIC 함수와 유사합니다.

PUBLIC.DATE_TO_INT_UDF(DATE_TO_CONVERT DATE)
Copy

매개 변수

DATE_TO_CONVERT 는 변환해야 하는 날짜 값을 나타냅니다

날짜 값을 정수 형식으로 변환합니다.

반환

숫자 형식의 날짜 값을 반환합니다.

입력:

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

출력:

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

정의

P_INTERSECT 연산자를 복제하는 사용자 정의 함수(UDF)입니다. 이 함수는 2개 이상의 기간을 비교하고 겹치는 부분을 식별하여 그 사이의 공통 시간 간격을 반환합니다.

기간의 시작 및 종료 값의 문자열 표현을 생성합니다(TIMESTAMP 는 날짜와 시간 정보를 모두 저장하는 데이터 타입이며 TIME 또는 DATE 는 시간 정보 없이 달력 날짜(연, 월, 일)를 저장하는 데 사용되는 데이터 타입입니다. 데이터 타입). 이 함수는 Teradata의 기간 값 생성자 함수를 에뮬레이션합니다. 출력 문자열은 PERIOD 값에 대한 Snowflake의 기본값 형식을 따릅니다. 출력의 전체 자릿수를 조정하려면 다음 두 가지 방법을 사용할 수 있습니다.

  • 세션 매개 변수 timestamp_output_format 수정

  • 이 UDF 의 3개 매개 변수 버전을 사용하십시오

소스 함수에 대한 자세한 내용은 Teradata 설명서 를 참조하십시오.

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

매개 변수

TIMESTAMP

TimeStamp 데이터 타입은 날짜 및 시간 구성 요소를 모두 포함하여 특정 시점을 나타냅니다.

TIME

시간 데이터 타입은 날짜 구성 요소 없이 하루 중 특정 시간을 나타냅니다.

DATE

날짜 데이터 타입은 시간 구성 요소가 없는 달력 날짜를 나타냅니다.

PRECISIONDIGITS 은 숫자 값에 표시할 소수점 이하 자릿수를 지정합니다.

시간 형식으로 표시할 자릿수입니다.

반환

PERIOD 타입 값의 문자열 표현을 반환합니다

사용법 예

입력:

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

출력:

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)

경고

이 옵션은 2개의 다른 매개 변수 유형을 허용하는 사용자 정의 함수(UDF)입니다.

정의

요일의 전체 이름을 대문자, 소문자 또는 대문자 형식(예: “MONDAY”, “monday” 또는 “Monday”) 중 원하는 형식으로 반환합니다.

PUBLIC.DAYNAME_LONG_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
Copy

매개 변수

INPUT TIMESTAMP_TZ

요일을 결정하기 위한 입력 날짜입니다.

RESULTCASE VARCHAR

시연할 예상 결과 또는 시나리오입니다.

반환

요일의 전체 이름이 포함된 문자열을 반환합니다.

사용법 예

입력:

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

출력:

'TUESDAY'
'tuesday'
'Tuesday'
Copy

TD_DAY_OF_WEEK_COMPATIBLE_UDF

정의

타임스탬프를 처리하여 어느 요일에 해당하는지 확인합니다. 이 함수는 DAYNUMBER_OF_WEEK(DATE, 'COMPATIBLE') 함수와 동일하게 작동합니다.

PUBLIC.TD_DAY_OF_WEEK_COMPATIBLE_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

요일을 결정하는 데 사용되는 입력 날짜입니다.

반환

요일을 나타내는 1에서 7 사이의 숫자를 반환하며, 여기서 1은 요일의 첫 번째 날을 나타냅니다. 예를 들어, 1월 1일이 수요일인 경우 수요일 = 1, 목요일 = 2, 금요일 = 3, 토요일 = 4, 일요일 = 5, 월요일 = 6, 화요일 = 7이 됩니다.

사용법 예

입력:

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

출력:

1, 6
Copy

JAROWINKLER_UDF

정의

Jaro-Winkler 알고리즘을 사용하여 두 문자열이 얼마나 유사한지 계산합니다. 이 알고리즘은 0(완전히 다름)에서 1(동일) 사이의 점수를 부여합니다.

PUBLIC.JAROWINKLER_UDF (string1 VARCHAR, string2 VARCHAR)
Copy

매개 변수

VARCHAR 타입의 string1

처리될 텍스트

VARCHAR 타입의 string2

처리될 텍스트

반환

이 함수는 0 또는 1을 반환합니다.

사용법 예

입력:

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

출력:

0.770000
Copy

YEAR_BEGIN_ISO_UDF

정의

UDF 를 사용하여 지정된 날짜의 ISO 연도 첫날을 계산합니다. DAYOFWEEKISO 함수를 PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF 와 함께 사용하여 매년 1월 1일에 가장 가까운 월요일을 찾는 방식으로 작동합니다. 이 함수는 이번 월요일의 위치를 찾기 위해 날짜를 더하거나 뺍니다.

PUBLIC.YEAR_BEGIN_ISO_UDF(INPUT DATE)
Copy

매개 변수

INPUT TIMESTAMP_TZ

ISO 달력 표준에 따라 현재 연도의 1월 1일을 나타내는 날짜입니다.

반환

ISO 달력 표준에 따른 새해 첫날입니다.

사용법 예

입력:

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

출력:

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

YEAR_PART_UDF

정의

날짜에서 연도를 추출하여 지정된 자릿수로 잘라냅니다.

PUBLIC.YEAR_PART_UDF(INPUT TIMESTAMP_TZ, DIGITS INTEGER)
Copy

매개 변수

INPUT TIMESTAMP_TZ

연도를 추출할 날짜입니다.

DIGITS 표시할 최대 자릿수를 나타내는 정수입니다

출력에서 원하는 소수점 이하 자릿수입니다.

반환

지정된 날짜에서 연도 구성 요소를 추출합니다.

사용법 예

입력:

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

출력:

'021'
'21'
'1'
Copy

YEAR_WITH_COMMA_UDF

정의

날짜에서 연도를 추출하고 첫 번째와 두 번째 자릿수 사이에 쉼표를 추가합니다. 예를 들어, 연도가 2023인 경우 “2,023”을 반환합니다.

PUBLIC.YEAR_WITH_COMMA_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

연도를 추출할 입력 날짜입니다.

반환

날짜 값의 연도 부분을 쉼표 구분 기호가 있는 varchar(텍스트)로 반환합니다.

사용법 예

입력:

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

출력:

'2,021'
Copy

MONTHS_BETWEEN_UDF

정의

두 날짜 사이의 개월 수 계산하기

MONTHS_BETWEEN_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
Copy

매개 변수

FIRST_DATE 는 날짜 및 시간 정보를 모두 포함하는 타임스탬프 열로, 시간대(TIMESTAMP_LTZ)를 지원합니다

함수가 데이터 처리를 시작할 초기 날짜입니다.

SECOND_DATE TIMESTAMP_LTZ

카운트를 중지할 시점을 정의하는 종료일입니다.

반환

두 날짜 사이의 기간(개월 단위)입니다.

사용법 예

입력:

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

출력:

12
Copy

SECONDS_PAST_MIDNIGHT_UDF

정의

지정된 시간 동안 자정부터 경과한 시간(초)을 계산합니다.

PUBLIC.SECONDS_PAST_MIDNIGHT_UDF(INPUT TIME)
Copy

매개 변수

INPUT TIME

이 함수는 자정(00:00:00) 이후 현재 시간까지 경과한 총 시간(초)을 계산합니다.

반환

자정 이후 경과한 시간(초)을 나타내는 varchar 값입니다.

사용법 예

입력:

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

출력:

'37845'
Copy

CHAR2HEXINT_UDF

정의

입력 문자열에 있는 각 문자의 16진수(베이스 16) 표현이 포함된 문자열을 반환합니다.

PUBLIC.CHAR2HEXINT_UDF(INPUT_STRING VARCHAR);
Copy

매개 변수

INPUT_STRING 는 텍스트 데이터를 저장하는 VARCHAR 타입의 변수입니다.

변환해야 하는 입력 문자열입니다.

반환

입력 문자열의 16진수 표현이 포함된 문자열을 반환합니다.

입력:

SELECT CHAR2HEXINT('1234') from t1;
Copy

출력:

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

소스 함수의 추가 정보

함수 설명서는 Teradata 설명서 에서 확인할 수 있습니다.

INTERVAL_ADD_UDF

정의

간격 값과 간격 유형의 열 참조 사이의 뺄셈 작업을 처리하는 UDFs (사용자 정의 함수)입니다.

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

매개 변수

VARCHAR 타입의 INPUT_VALUE1

시스템에서 처리할 입력 데이터입니다.

VARCHAR 타입의 INPUT_PART1

사용할 시간 단위(예: ‘HOUR’).

INPUT_VALUE2 는 VARCHAR 데이터 타입 매개 변수입니다.

참조된 열의 이름(예: ‘INTERVAL_HOUR_TYPE’)

INPUT_PART2 VARCHAR

참조된 열에 할당된 데이터 타입입니다.

OP 문자

현재 분석 중인 기호 또는 연산자입니다.

OUTPUT_PART VARCHAR

반환 값의 데이터 타입입니다.

반환

두 시간 간격을 뺀 결과를 나타내는 varchar 값입니다.

마이그레이션 예시

입력:

CREATE TABLE INTERVAL_TABLE
(
    INTERVAL_YEAR_TYPE INTERVAL YEAR
);

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

출력:

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

정의

타임스탬프를 요일의 전체 이름(예: “월요일”, “화요일”등)으로 변환하는 사용자 정의 함수(UDF)입니다.

PUBLIC.DAY_OF_WEEK_LONG_UDF(INPUT_DATE TIMESTAMP)
Copy

매개 변수

INPUT_DATE 는 타임스탬프 값을 나타냅니다

타임스탬프는 전체 날짜 이름(예: “월요일”, “화요일”등)으로 변환됩니다.

반환

영어로 된 오늘의 이름입니다.

TD_WEEK_OF_CALENDAR_UDF

정의

사용자 정의 함수(UDF)는 Teradata의 TD_WEEK_OF_CALENDAR 기능을 직접 대체하는 역할을 하며, Snowflake에서 동일한 기능을 제공합니다.

PUBLIC.TD_WEEK_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

1900년 1월 1일 이후 경과한 주 수를 계산하는 데 사용되는 날짜입니다.

반환

1900년 1월 1일과 지정된 날짜 사이의 완전한 주 수를 나타내는 정수입니다

마이그레이션 예시

입력:

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

출력:

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

WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF

정의

마이너스 기호(-) 대신 꺾쇠 괄호(< >)를 사용하도록 음수를 변환합니다. 이 변환은 PR (괄호) 형식 요소가 원래 Teradata 형식 문자열에 있을 때 발생합니다.

PUBLIC.WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF(INPUT NUMBER, FORMATARG VARCHAR)
Copy

매개 변수

INPUT 은 숫자 값입니다

텍스트 문자열(varchar)로 변환할 숫자 값입니다.

FORMATARG 는 데이터 형식을 지정하는 VARCHAR 유형의 매개 변수입니다.

형식 매개 변수는 INPUT 값을 텍스트(varchar) 표현으로 변환하는 방법을 지정합니다.

반환

각괄호(< >)로 묶인 음수를 포함하는 varchar 입니다.

사용법 예

입력:

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

출력:

'8456'
'<8456>'
Copy

INSTR_UDF (STRING, STRING)

경고

이 옵션은 2개의 다른 매개 변수 세트 를 허용하는 사용자 정의 함수(UDF)입니다.

정의

Source_string 내에 search_string이 표시되는 모든 인스턴스를 찾습니다.

PUBLIC.INSTR_UDF(SOURCE_STRING STRING, SEARCH_STRING STRING)
Copy

매개 변수

SOURCE_STRING 은 처리해야 하는 입력 문자열을 나타냅니다

검색할 텍스트입니다.

SEARCH_STRING 은 검색할 텍스트를 지정하는 STRING 타입의 매개 변수입니다.

함수가 찾아서 일치시킬 텍스트 패턴입니다.

반환

소스 문자열에서 패턴을 찾을 수 있는 인덱스 위치(위치 1부터 시작)입니다.

사용법 예

입력:

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

출력:

2
Copy

TRANSLATE_CHK_UDF

정의

오류가 발생하지 않고 코드가 성공적으로 변환될 수 있는지 확인합니다.

PUBLIC.TRANSLATE_CHK_UDF(COL_NAME STRING, SOURCE_REPERTOIRE_NAME STRING)
Copy

매개 변수

COL_NAME 은 열 이름을 나타내는 문자열 변수입니다.

유효성을 검사해야 하는 열입니다.

SOURCE_REPERTOIRE_NAME 은 소스 디렉터리 이름을 지정하는 문자열 매개 변수입니다.

소스 컬렉션 또는 라이브러리의 이름입니다.

반환

0: 변환이 오류 없이 성공적으로 완료되었습니다. NULL: 결과가 반환되지 않았습니다(null 값).

문자열에서 첫 번째 문자의 위치로 인해 변환 오류가 발생했습니다.

사용법 예

입력:

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

출력:

0
Copy

EXPAND_ON_UDF

참고

가독성을 높이기 위해 이 예제에서는 코드의 일부 섹션을 간소화했습니다.

정의

Teradata의 확장 함수의 동작을 복제합니다.

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

매개 변수

TIME 은 시간 값을 텍스트(STRING)로 저장하는 데이터 타입입니다.

앵커가 완전히 확장되는 데 필요한 시간입니다.

SEQ 시퀀스 번호

각 행의 값이 계산되는 순서입니다.

PERIOD 기간을 나타내는 텍스트 값입니다

지정된 기간의 날짜입니다.

반환

확장 절에서 확장 기간을 계산하는 방법을 정의하는 VARCHAR 값입니다.

마이그레이션 예시

입력:

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

출력:

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

정의

1부터 DIFF_TIME_PERIOD_UDF 가 반환한 값까지 일련번호가 포함된 배열을 반환합니다.

PUBLIC.ROW_COUNT_UDF(NROWS DOUBLE)
Copy

매개 변수

NROWS 는 데이터 세트의 총 행 수를 소수점(DOUBLE)으로 나타냅니다.

DIFF_TIME_PERIOD_UDF 함수에 의해 반환되는 값입니다.

반환

EXPAND ON 절의 기능을 복제하는 데 필요한 행 수를 결정하는 배열입니다.

사용법 예

입력:

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

출력:

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

마이그레이션 예시

입력:

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

출력:

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

정의

지정된 날짜의 세기를 계산합니다.

PUBLIC.CENTURY_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

세기를 결정하는 데 사용되는 입력 날짜입니다.

반환

지정된 날짜의 세기 숫자를 varchar로 반환합니다.

사용법 예

입력:

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

출력:

'20'
Copy

TIME_DIFFERENCE_UDF

경고

이 UDF 는 이제 Snowflake에서 동등한 기본 제공 함수를 제공하므로 더 이상 사용되지 않습니다. 자세한 내용은 TIMEDIFF 설명서를 참조하십시오.

정의

지정된 두 타임스탬프 사이의 시간 간격을 계산합니다.

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

매개 변수

MINUEND 뺄 타임스탬프 값입니다

원래 값에서 빼야 할 시간입니다.

SUBTRAHEND 다른 타임스탬프에서 뺄 타임스탬프 값입니다

시간이 차감되었습니다.

INPUT_PART 는 입력 데이터를 저장하는 VARCHAR 타입의 변수입니다.

EXTRACT_PART 는 문자열에서 추출된 부분을 저장하는 VARCHAR 유형의 변수입니다.

시간 간격에서 숫자 값을 추출합니다.

반환

특정 시간을 나타내는 텍스트 값(VARCHAR)입니다.

입력:

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

출력:

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

INTERVAL_DIVIDE_UDF

정의

간격 나누기 계산을 수행하는 사용자 정의 함수(UDF)입니다.

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

매개 변수

INPUT_PART 는 데이터의 입력 부분을 나타내는 VARCHAR 타입의 변수입니다.

간격 유형을 지정하는 값(예: ‘YEARTOMONTH’).

INPUT_VALUE VARCHAR

분할할 시간 간격입니다.

INPUT_DIV 는 입력된 제수를 나타내는 정수 값입니다.

다른 숫자로 나눌 수 있는 숫자입니다.

반환

출력은 시간 간격을 숫자 값으로 나누어 계산합니다.

마이그레이션 예시

입력:

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

출력:

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

DAYNUMBER_OF_MONTH_UDF

정의

UDF 는 지정된 타임스탬프가 속한 달의 요일을 결정합니다. 이 함수는 Teradata의 DAYNUMBER_OF_MONTH(DATE, ‘ISO’) 함수와 유사하게 작동합니다.

PUBLIC.DAYNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

해당 요일을 결정하는 데 사용되는 날짜 값입니다.

반환

1~33(포함)까지의 정수입니다.

입력:

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

출력:

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

LAST_DAY_DECEMBER_OF_ISO_UDF

정의

UDF (사용자 정의 함수)를 사용하여 12월 31일을 처리하고 해당 ISO 연도를 반환합니다. 이 함수는 PUBLIC.YEAR_END_IDO_UDF 계산의 구성 요소로 사용됩니다.

PUBLIC.LAST_DAY_DECEMBER_OF_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

ISO 연도 형식을 사용하여 12월의 마지막 날을 가져오려면 12월 31일을 사용합니다.

반환

12월 31일을 나타내는 날짜(ISO 연도 형식)입니다.

사용법 예

입력:

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

출력:

2021-12-31
Copy

DATEADD_UDF

참고

가독성을 높이기 위해 이 예제에서는 코드의 일부 섹션을 간소화했습니다.

정의

두 날짜의 합계를 계산하는 함수

PUBLIC.DATE_ADD_UDF(FIRST_DATE DATE, SECOND_DATE DATE)
Copy

매개 변수

FIRST_DATE 는 DATE 타입의 열을 나타냅니다.

포함될 초기 날짜 값입니다.

SECOND_DATE 는 DATE 타입의 열을 나타냅니다.

두 번째 날짜 값을 first_date와 함께 추가합니다.

반환

결과는 두 입력 매개 변수를 결합하여 계산된 날짜입니다.

입력:

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

출력:

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

정의

율리우스력 날짜 형식(YYYYDDD)을 표준 그레고리력 날짜(YYYY - MM - DD)로 변환하는 사용자 정의 함수(UDF)입니다.

PUBLIC.JULIAN_TO_DATE_UDF(JULIAN_DATE CHAR(7))
Copy

매개 변수

JULIAN_DATECHAR - 날짜를 율리우스력 형식으로 저장하는 데 사용되는 문자 데이터 타입입니다.

율리우스력 형식에서 변환할 날짜입니다.

반환

율리우스력 날짜의 날짜 표현을 반환하거나 변환을 수행할 수 없는 경우 null을 반환합니다.

사용법 예

입력:

SELECT JULIAN_TO_DATE_UDF('2022045');
Copy

출력:

'2022-02-14'
Copy

마이그레이션 예시

입력:

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

출력:

SELECT
PUBLIC.JULIAN_TO_DATE_UDF('2020002');
Copy

FIRST_DAY_JANUARY_OF_ISO_UDF

정의

PUBLIC.YEAR_BEGIN_ISO_UDF 함수가 결과를 계산하는 데 사용하는 ISO 달력 연도의 1월 1일입니다.

FUNCTION PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

ISO 연도 형식을 사용하여 1월 1일을 나타내는 날짜입니다.

반환

지정된 ISO 달력 연도의 1월 1일을 나타내는 날짜입니다.

사용법 예

입력:

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

출력:

2021-01-01
Copy

TIMESTAMP_DIFFERENCE_UDF

정의

사용자 정의 함수를 사용하여 두 날짜를 빼는 방법 (UDF)

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

Teradata와 Snowflake 날짜 시간 빼기의 차이점

Teradata와 Snowflake는 날짜 및 시간 계산에 서로 다른 방법을 사용합니다. 구문, 출력 데이터 타입, 전체 자릿수 수준이 다릅니다.

경고

날짜 계산을 수행할 때 반올림 또는 시간대 차이로 인해 결과가 하루 정도 다를 수 있습니다.

매개 변수

MINUEND 뺄 타임스탬프 값은 다음에서 뺄 타임스탬프 값을 나타냅니다

뺄셈의 시작점으로 사용되는 날짜입니다.

SUBTRAHEND 는 다른 타임스탬프에서 뺄 타임스탬프 값입니다.

날짜가 제거되었습니다.

INPUT_PART 는 VARCHAR (가변 길이 문자 문자열) 유형의 변수입니다

반환해야 하는 부분.

반환

지정된 INPUT_PART 매개 변수에 따라 문자열 값을 형식화합니다.

입력:

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

FIRST_DAY_OF_MONTH_ISO_UDF

정의

사용자 정의 함수(UDF)는 ISO 형식(YYYY-MM-DD)으로 지정된 월의 첫날을 반환합니다.

PUBLIC.FIRST_DAY_OF_MONTH_ISO_UDF(YEAR NUMBER, MONTH NUMBER)
Copy

매개 변수

YEAR 는 4자리 연도 값을 저장하는 데 사용되는 숫자 데이터 타입입니다.

연도를 나타내는 숫자(예: 2023) 값입니다.

MONTH 월을 나타내는 숫자 값(1~12)

월을 나타내는 숫자 값(1~12)입니다.

반환

현재 월의 첫날을 ISO 형식 (YYYY-MM-DD)으로 반환합니다.

참고

이 UDF 는 DAYNUMBER_OF_MONTH_UDF 함수 내에서 사용되는 헬퍼 함수입니다.

INT_TO_DATE_UDF

정의

UDF 를 사용하여 숫자 값을 날짜로 변환(Teradata 호환성 함수)

PUBLIC.INT_TO_DATE_UDF(NUMERIC_EXPRESSION INTEGER)
Copy

매개 변수

NUMERIC_EXPRESSION 은 정수로 평가되는 숫자 값 또는 식을 나타냅니다

특정 형식으로 날짜를 나타내는 값(예: YYYY-MM-DD)입니다

반환

날짜 형식으로 변환된 숫자입니다.

입력:

SELECT * FROM table1
WHERE date_column > 1011219
Copy

출력:

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

NULLIFZERO_UDF

정의

데이터에서 0 값을 NULL 로 대체하여 0으로 나누기 오류를 방지합니다.

PUBLIC.NULLIFZERO_UDF(NUMBER_TO_VALIDATE NUMBER)
Copy

매개 변수

NUMBER_TO_VALIDATE NUMBER

유효성 검사가 필요한 번호입니다.

반환

입력된 숫자가 0이면 null을 반환하고, 그렇지 않으면 원래 숫자를 반환합니다.

사용법 예

SELECT NULLIFZERO_UDF(0);
Copy

출력:

NULL
Copy

DATE_LONG_UDF

정의

날짜를 ‘일, 월 DD, YYYY’ 형식으로 변환합니다(예: ‘월요일, 2024년 01월 01일’). 이 형식은 Teradata의 DL 날짜 형식 요소와 일치합니다.

PUBLIC.DATE_LONG_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

날짜는 긴 날짜 형식으로 표시해야 합니다(예: “2023년 9월 15일”).

반환

Teradata DL 형식 요소를 나타내는 VARCHAR 데이터 타입입니다.

사용법 예

입력:

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

출력:

'Tuesday, October 26, 2021'
Copy

TD_MONTH_OF_CALENDAR_UDF

정의

사용자 정의 함수(UDF)는 Teradata의 TD_MONTH_OF_CALENDAR 기능을 대체하는 역할을 하며, 동일한 기능을 제공합니다.

PUBLIC.TD_MONTH_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

1900년 1월 1일 이후 경과한 개월 수를 계산하는 데 사용되는 날짜입니다.

반환

1900년 1월 1일부터 지정된 날짜 사이의 개월 수를 나타내는 정수입니다

마이그레이션 예시

입력:

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

출력:

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

MONTH_NAME_LONG_UDF

정의

타임스탬프를 해당 전체 월 이름으로 변환하는 사용자 정의 함수(UDF)입니다.

PUBLIC.MONTH_NAME_LONG_UDF(INPUT_DATE TIMESTAMP)
Copy

매개 변수

INPUT DATE

타임스탬프는 전체 월 이름을 표시하도록 변환해야 합니다.

반환

영어로 된 이달의 이름입니다.

TD_DAY_OF_CALENDAR_UDF

정의

Teradata의 TO_DAY_OF_CALENDAR 기능을 복제하는 사용자 정의 함수(UDF)입니다.

PUBLIC.TD_DAY_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

1900년 1월 1일 이후 경과한 일수를 계산하는 데 사용되는 날짜입니다.

반환

1900년 1월 1일과 INPUT 날짜 사이의 일 수를 나타내는 정수입니다

마이그레이션 예시

입력:

SELECT td_day_of_calendar(current_date)
Copy

출력:

SELECT
PUBLIC.TD_DAY_OF_CALENDAR_UDF(CURRENT_DATE());
Copy

PERIOD_TO_TIME_UDF

정의

Teradata PERIOD 값을 TIME 값으로 변환하는 함수로, Teradata의 형 변환 동작을 유지합니다.

PERIOD_TO_TIME_UDF(PERIOD_VAL VARCHAR(22))
Copy

매개 변수

PERIOD_VAL 은 기간 값을 나타냅니다

변환해야 하는 기간입니다.

반환

이 함수는 PERIOD 를 나타내는 TIME 값을 반환합니다. 변환을 완료할 수 없으면 null을 반환합니다.

사용법 예

입력:

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

출력:

08:42:04
Copy

INSTR_UDF (STRING, STRING, DOUBLE, DOUBLE)

경고

이 사용자 정의 함수(UDF)는 4개의 입력 변수 를 허용합니다.

정의

Source_string 내에 search_string이 표시되는 모든 인스턴스를 찾습니다.

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

매개 변수

SOURCE_STRING 은 처리해야 하는 입력 문자열을 나타냅니다

검색할 텍스트 문자열입니다.

SEARCH_STRING 는 검색하려는 텍스트 값입니다.

함수가 찾아서 일치시킬 텍스트 패턴입니다.

POSITION DOUBLE - 소수점을 배정밀도로 저장하는 숫자 데이터 타입입니다.

텍스트에서 검색이 시작될 위치(위치 1부터 시작)입니다.

OCCURRENCE DOUBLE - 이벤트 발생 횟수를 나타내는 숫자 데이터 타입으로, 배정밀도 부동소수점 숫자로 저장됩니다.

텍스트에서 검색이 시작될 위치(위치 1부터 시작)입니다.

반환

소스 문자열 내에서 지정된 텍스트를 찾을 수 있는 인덱스 위치입니다.

사용법 예

입력:

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

출력:

20
Copy

ROUND_DATE_UDF

정의

시간 부분을 지정된 단위(UNIT_TO_ROUND_BY)로 반올림하여 DATE_VALUE 를 처리하는 사용자 정의 함수(UDF)입니다. 이 함수는 Teradata ROUND(date) 함수와 유사합니다.

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

매개 변수

DATE_TO_ROUND TIMESTAMP_TZ (반올림해야 하는 시간대 정보가 포함된 타임스탬프 값)

반올림해야 하는 날짜 값입니다.

UNIT_TO_ROUND_BY VARCHAR - 반올림에 사용되는 시간 단위를 지정합니다

날짜 반올림에 사용되는 시간 단위입니다.

반환

지정된 시간 단위로 반올림된 날짜를 반환합니다. UNIT_TO_ROUND_BY 매개 변수는 날짜를 반올림하는 방법을 결정합니다.

마이그레이션 예시

입력:

SELECT ROUND(CURRENT_DATE, 'RM') RND_DATE
Copy

출력:

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

SUBSTR_UDF (STRING, FLOAT, FLOAT)

경고

이 옵션은 3개의 매개 변수 를 허용하는 사용자 정의 함수(UDF)입니다.

정의

시작 및 끝 위치를 사용하여 지정된 문자열에서 텍스트의 일부를 검색합니다.

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

매개 변수

BASE_EXPRESSION 은 기본 식을 정의하는 문자열 매개 변수입니다.

일부를 추출하려는 소스 텍스트입니다.

START_POSITION 은 초기 위치를 정의하는 부동 소수점 숫자입니다.

문자열에서 문자 추출을 시작할 위치입니다.

LENGTH 는 길이 값을 나타내는 부동 소수점 숫자입니다.

문자열에서 문자 추출을 시작할 위치입니다.

반환

반드시 포함해야 하는 하위 문자열입니다.

사용법 예

입력:

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

출력:

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

GETQUERYBANDVALUE_UDF (VARCHAR)

경고

이 옵션은 1개의 매개 변수 를 허용하는 사용자 정의 함수(UDF)입니다.

정의

트랜잭션, 세션 또는 프로필 쿼리 밴드에 저장된 이름-값 쌍의 값을 반환합니다.

GETQUERYBANDVALUE_UDF(SEARCHNAME VARCHAR)
Copy

매개 변수

SEARCHNAME VARCHAR - 검색어 또는 이름을 저장하는 데 사용되는 VARCHAR 타입의 변수입니다. - 검색어 또는 이름을 저장하는 데 사용되는 VARCHAR 타입의 변수입니다.

키-값 페어 내에서 검색할 이름입니다.

반환

세션 쿼리 밴드의 “이름” 키 값(없는 경우 null).

사용법 예

입력:

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

출력:

security
Copy

마이그레이션 예시

입력:

SELECT GETQUERYBANDVALUE(1, 'group');
Copy

출력:

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

정의

연도 내 특정 날짜의 전체 주 수를 계산하는 사용자 정의 함수(UDF)입니다. 이 기능은 Teradata의 TD_WEEK_OF_YEARWEEKNUMBER_OF_YEAR 기능과 동일한 기능을 제공합니다.

PUBLIC.TD_WEEK_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

주 수를 계산하는 데 사용되는 날짜입니다.

반환

지정된 날짜가 속한 연도의 어느 주에 해당하는지를 나타내는 숫자 값입니다.

사용법 예

입력:

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

출력:

18, 0
Copy

EXTRACT_TIMESTAMP_DIFFERENCE_UDF

참고

가독성을 높이기 위해 가장 관련성이 높은 부분만 표시하여 코드 예제를 간소화했습니다.

정의

MINUEND 에서 SUBTRAHEND 를 뺀 결과에서 ‘Data’ 부분을 검색합니다

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

Teradata와 Snowflake 날짜/시간 추출의 차이점

Teradata 및 Snowflake 함수는 매개 변수 요구 사항이 다를 수 있으며 다른 데이터 타입을 반환할 수 있습니다.

  • 매개 변수: Teradata와 Snowflake에서 EXTRACT 함수의 주요 차이점은 Snowflake는 날짜와 시간으로만 작동하는 반면, Teradata는 간격도 지원한다는 점입니다. 자세한 내용은 Snowflake의 EXTRACT 함수 설명서Teradata의 EXTRACT 함수 설명서 를 참조하십시오.

  • 반환 유형: 함수에 따라 반환 값이 다릅니다. Teradata의 EXTRACT 는 정수 또는 소수(8, 2)를 반환하는 반면, Snowflake의 EXTRACT 는 요청된 날짜-시간 부분을 나타내는 숫자를 반환합니다.

Teradata 및 Snowflake 함수는 입력 매개 변수와 출력 유형이 다를 수 있습니다.

매개 변수

MINUEND TIMESTAMP

뺄셈의 시작점으로 사용되는 날짜입니다.

SUBTRAHEND 다른 타임스탬프에서 뺄 타임스탬프 값입니다

날짜가 제거되었습니다.

INPUT_PART VARCHAR

형식이 지정된 varchar는 원래 요청된 부분(TIMESTAMP_DIFERENCE INPUT_PART 와 동일)과 일치해야 하며 다음 중 하나여야 합니다.

  • 'DAY TO HOUR'

  • 'DAY TO MINUTE'

  • 'DAY TO SECOND'

  • 'DAY TO MINUTE'

  • 'HOUR TO MINUTE'

  • 'HOUR TO SECOND'

  • 'MINUTE TO SECOND'

EXTRACT_PART 는 문자열에서 추출된 부분을 나타내는 VARCHAR 데이터 타입입니다.

추출 시간 단위는 'DAY', 'HOUR', 'MINUTE' 또는 'SECOND' 중 하나여야 합니다. 요청된 시간 단위는 입력된 시간 간격 내에 있어야 합니다.

반환

추출 프로세스에 포함된 요청 수입니다.

입력:

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

출력:

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

JSON_EXTRACT_DOT_NOTATION_UDF

정의

JavaScript 또는 Python에서 중첩된 속성에 액세스하는 방법과 유사하게 점 표기법을 사용하여 JSON 오브젝트를 쿼리할 수 있는 사용자 정의 함수(UDF)입니다.

JSON_EXTRACT_DOT_NOTATION_UDF(JSON_OBJECT VARIANT, JSON_PATH STRING)
Copy

Teradata JSON 엔터티 참조(점 표기법)와 Snowflake JSON 쿼리 방법의 차이점.

Teradata와 Snowflake는 서로 다른 방법을 사용하여 JSON 데이터를 트래버스합니다. Teradata는 점 표기법, 배열 인덱싱, 와일드카드 액세스 및 이중 점 표기법과 같은 특수 연산자와 함께 JavaScript 기반 접근법을 사용합니다. 반면, Snowflake는 직접 멤버 액세스 및 배열 인덱싱만 지원하는 JSON 트래버스 기능이 더 제한적입니다.

매개 변수

JSON_OBJECT JSON 오브젝트를 나타내는 데이터 타입으로, 다양한 데이터 타입의 중첩된 키-값 페어를 포함할 수 있습니다.

추출하려는 값이 포함된 JSON 오브젝트입니다.

JSON_PATH JSON 문서에서 데이터를 추출할 경로를 지정하는 문자열 매개 변수입니다

값을 찾을 수 있는 JSON_OBJECT 내의 위치로, JSON 경로 표기법을 사용하여 지정합니다.

반환

지정된 JSON_PATH 와 일치하는 JSON_OBJECT 내의 데이터 요소입니다.

마이그레이션 예시

입력:

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

출력:

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

WEEK_OF_MONTH_UDF

정의

특정 날짜가 해당 월의 어느 주에 해당하는지 계산합니다.

PUBLIC.WEEK_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

해당 월이 속한 주를 결정하는 데 사용되는 날짜입니다.

반환

특정 날짜가 속한 달의 어느 주에 해당하는지 표시하는 VARCHAR 열입니다.

사용법 예

입력:

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

출력:

'4'
Copy

DAYNAME_LONG_UDF (TIMESTAMP_TZ)

경고

이 옵션은 1개의 매개 변수 를 허용하는 사용자 정의 함수(UDF)입니다.

정의

UDF 를 호출하면 첫 글자가 대문자(기본 형식)인 요일 이름을 반환하는 DAYNAME_LONG_UDF 함수의 베리언트를 생성합니다.

PUBLIC.DAYNAME_LONG_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

요일을 가져올 날짜입니다.

반환

요일의 전체 이름이 포함된 문자열을 반환합니다.

사용법 예

입력:

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

출력:

'Thursday'
Copy

INTERVAL_TO_MONTHS_UDF

정의

시간 간격을 월로 변환합니다.

PUBLIC.INTERVAL_TO_MONTHS_UDF
(INPUT_VALUE VARCHAR())
Copy

매개 변수

INPUT_VALUE VARCHAR

월로 변경되는 기간입니다.

반환

처리할 월 수로, 정수로 지정합니다.

GETQUERYBANDVALUE_UDF (VARCHAR, FLOAT, VARCHAR)

경고

이 사용자 정의 함수(UDF)는 3개의 매개 변수를 허용합니다.

정의

트랜잭션, 세션 또는 프로필 쿼리 밴드에 저장된 이름-값 쌍의 값을 반환합니다. 이 값은 쿼리 밴드의 특정 이름과 연관됩니다.

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

매개 변수

QUERYBAND 는 쿼리 대역 정보를 저장하는 VARCHAR 데이터 타입입니다.

쿼리 밴드는 트랜잭션, 세션 및 프로필 쿼리 밴드를 1개의 문자열로 결합합니다.

SEARCHTYPE 은 부동 소수점 숫자 데이터 타입입니다.

일치하는 쌍을 검색할 최대 깊이입니다.

0은 모든 입력과 일치하는 와일드카드 값을 나타냅니다.

트랜잭션은 데이터베이스의 단일 작업 단위를 나타냅니다.

세션 오브젝트는 Snowflake에 대한 연결을 나타냅니다.

3 = 프로필을 생성합니다.

SEARCHNAME VARCHAR

키-값 페어 내에서 검색할 이름입니다.

반환

계층 구조에서 지정된 레벨에 있는’이름’키의 값을 반환합니다. 값을 찾을 수 없으면 null을 반환합니다.

사용법 예

입력:

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

출력:

      Matt
      SaraDB
      DbAdmin
      NULL
Copy

마이그레이션 예시

입력:

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

출력:

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

정의

4713년 1월 1일 BCE (공통 시대 이전) 이후 연속 일수를 나타내는 율리우스력 일수를 계산합니다. 율리우스력은 천문학 및 달력 계산에 사용됩니다.

PUBLIC.JULIAN_DAY_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

율리우스력 날짜로 변환할 날짜입니다.

반환

계산된 율리우스력 날짜를 나타내는 varchar 값입니다.

사용법 예

입력:

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

출력:

'2459514'
Copy

WEEKNUMBER_OF_MONTH_UDF

정의

지정된 날짜로부터 월을 식별합니다.

PUBLIC.WEEKNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

월 번호를 계산할 날짜입니다.

반환

지정된 날짜의 월(1~12)을 나타내는 숫자 값입니다.

사용법 예

입력:

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

출력:

3
Copy

JSON_EXTRACT_UDF

정의

JSONExtract, JSONExtractValue, JSONExtractLargeValue 함수의 동작을 모방하는 사용자 정의 함수(UDF)입니다. 이 UDF 에서는 JSON 오브젝트에서 여러 값을 추출할 수 있습니다.

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

매개 변수

JSON_OBJECT 는 JSON 형식의 데이터를 정형 형식으로 저장하는 데이터 타입입니다.

추출하려는 값이 포함된 JSON 오브젝트입니다.

JSON_PATH JSON 문서에서 데이터를 추출할 경로를 지정하는 문자열입니다

원하는 값을 찾을 수 있는 JSON_OBJECT 내의 위치로, JSON 경로 표기법을 사용하여 지정합니다.

SINGLE_VALUE 단일 값을 반환할지 여러 값을 반환할지를 나타내는 부울 플래그입니다.

BOOLEAN 매개 변수: true로 설정하면 단일 값을 반환합니다(JSONExtractValue 및 JSONExtractLargeValue 함수에 필수). false로 설정하면 값 배열을 반환합니다(JSONExtract 와 함께 사용됨).

반환

JSON 오브젝트 내의 지정된 JSON 경로에서 찾은 데이터 값입니다.

마이그레이션 예시

입력:

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

출력:

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

COMPUTE_EXPAND_ON_UDF

정의

지정된 기간 타입에 따라 데이터를 확장하는 방법을 결정합니다.

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

매개 변수

TIME STRING

앵커에 사용되는 타임스탬프입니다.

SEQ 시퀀스 번호

각 행의 계산이 수행되는 순서입니다.

PERIOD 는 특정 시점을 나타내는 타임스탬프 값을 나타냅니다.

지정된 기간의 날짜입니다.

PERIODTYPE 은 기간 유형을 정의하는 문자열 값입니다.

계산에 사용되는 기간(’BEGIN’ 또는 ‘END’)

반환

EXPAND-ON 작업의 각 행이 처리된 시점을 나타내는 타임스탬프입니다.

경고

이 UDF 는 EXPAND_ON_UDF의 기능을 확장하는 파생 기능입니다.

WEEK_NUMBER_OF_QUARTER_UDF

정의

지정된 날짜의 현재 분기 내 주 번호를 반환합니다. 이 함수는 ISO 달력 시스템을 사용하는 Teradata의 WEEKNUMBER_OF_QUARTER(DATE, 'ISO') 함수와 동일한 동작을 따릅니다.

PUBLIC.WEEK_NUMBER_OF_QUARTER_UDF(INPUT TIMESTAMP_TZ)
Copy

매개 변수

INPUT TIMESTAMP_TZ

분기 중 어느 주에 해당하는지 계산하는 데 사용되는 날짜입니다.

반환

분기 중 어느 주(1~13)를 참조하고 있는지를 나타내는 정수입니다.

사용법 예

입력:

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

출력:

1, 4
Copy

YEAR_END_ISO_UDF

정의

ISO 달력 표준을 사용하여 지정된 날짜의 연도 마지막 날을 계산하는 사용자 정의 함수(UDF)로, Teradata의 TD_YEAR_END 함수와 유사합니다.

PUBLIC.YEAR_END_ISO_UDF(INPUT date)
Copy

매개 변수

INPUT DATE

ISO 달력 표준에 따라 한 해의 마지막 날을 나타내는 날짜입니다.

반환

ISO 달력 시스템에 따른 연중 마지막 날입니다.

사용법 예

입력:

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

출력:

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

INSERT_CURRENCY_UDF

정의

통화 기호와 숫자 사이에 공백이나 기호가 없는지 확인하기 위해 숫자 첫 자릿수 바로 앞에 통화 기호를 삽입합니다.

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

매개 변수

INPUT VARCHAR

통화 형식이 필요한 숫자 값을 변환할 때 TO_CHAR 의 출력입니다.

CURRENCYINDEX 는 통화의 인덱스를 나타내는 정수 값입니다.

통화를 삽입할 배열의 위치입니다.

CURRENCYVALUE 통화 값을 저장하는 VARCHAR 필드

통화 값으로 사용할 텍스트입니다.

반환

정의된 위치에 통화 텍스트가 포함된 varchar 필드입니다.

사용법 예

입력:

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

출력:

'+CRC823'
Copy

INSTR_UDF (STRING, STRING, INT)

경고

이 사용자 정의 함수(UDF)는 3개의 매개 변수를 허용합니다.

정의

Source_string 내에 search_string이 표시되는 모든 인스턴스를 찾습니다.

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

매개 변수

SOURCE_STRING 은 입력으로 사용될 문자열 값을 나타냅니다

검색할 텍스트입니다.

SEARCH_STRING 는 검색하려는 텍스트 값입니다.

함수가 찾아서 일치시킬 텍스트 패턴입니다.

POSITION 은 시퀀스 내 위치를 나타내는 정수 데이터 타입입니다.

텍스트에서 검색이 시작되는 위치(위치 1부터 시작)입니다.

반환

원본 문자열 내에서 일치하는 항목이 발견된 위치입니다.

사용법 예

입력:

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

출력:

8
Copy