SnowConvert: Teradata에 대한 함수 참조¶
QUARTERNUMBER_OF_YEAR_UDF¶
정의¶
UDF (사용자 정의 함수)는 Teradata의 QUARTERNUMBER_OF_YEAR_UDF (날짜, ‘ISO’) 함수와 유사하게 ISO 연도에 따라 지정된 날짜의 분기 수를 계산하는 함수입니다.
PUBLIC.QUARTERNUMBER_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
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');
출력:
4, 1
DAYNUMBER_OF_YEAR_UDF¶
정의¶
지정된 타임스탬프의 연도 내 요일 번호를 반환합니다. 일 수는 1에서 365(윤년의 경우 366)까지입니다. 이 함수는 DAYNUMBER_OF_YEAR(DATE, ‘ISO’)와 동일한 방식으로 작동합니다.
PUBLIC.DAYNUMBER_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
날짜에서 연도의 일 번호를 가져옵니다.
반환¶
1~371 사이의 정수입니다.
예¶
입력:
SELECT DAYNUMBER_OF_YEAR(CURRENT_DATE,'ISO');
출력:
SELECT
PUBLIC.DAYNUMBER_OF_YEAR_UDF(CURRENT_DATE());
SUBSTR_UDF (STRING, FLOAT)¶
경고
이 사용자 정의 함수(UDF)는 2개의 매개 변수(오버로드된 함수)를 허용합니다.
정의¶
시작 위치와 길이를 사용하여 지정된 문자열에서 텍스트의 일부를 검색합니다.
PUBLIC.SUBSTR_UDF(BASE_EXPRESSION STRING, START_POSITION FLOAT)
매개 변수¶
BASE_EXPRESSION
은 작업의 기본 식을 정의하는 문자열 매개 변수입니다.
일부를 추출하려는 소스 텍스트입니다.
START_POSITION
- 입력 문자열에서 시작 위치를 지정하는 부동 소수점 숫자입니다.
문자열에서 문자 추출을 시작할 위치입니다.
반환¶
반드시 포함해야 하는 하위 문자열입니다.
마이그레이션 예시¶
입력:
SELECT SUBSTRING('Hello World!' FROM -2);
출력:
SELECT
PUBLIC.SUBSTR_UDF('Hello World!', -2);
CHKNUM_UDF¶
정의¶
문자열에 유효한 숫자 값이 포함되어 있는지 확인합니다.
PUBLIC.CHKNUM_UDF(NUM STRING);
매개 변수¶
NUM
숫자를 나타내는 문자열입니다
유효성을 검사해야 하는 텍스트 문자열입니다.
반환¶
입력된 매개 변수가 유효한 숫자 값이면 1을 반환합니다. 입력한 숫자가 유효한 숫자(예: 텍스트 또는 특수 문자)가 아닌 경우 0을 반환합니다.
예¶
SELECT CHKNUM('1032');
출력:
SELECT
PUBLIC.CHKNUM_UDF('1032');
TD_YEAR_END_UDF¶
정의¶
UDF (사용자 정의 함수)는 지정된 날짜의 연도 마지막 날을 반환하는 Teradata의 TD_YEAR_END(DATE) 또는 TD_YEAR_END(DATE, ‘COMPATIBLE’) 함수를 복제합니다.
PUBLIC.TD_YEAR_END_UDF(INPUT date)
매개 변수¶
INPUT
DATE
현재 연도의 마지막 날을 가져옵니다.
반환¶
12월의 마지막 날(12월 31일).
사용법 예¶
입력:
SELECT PUBLIC.TD_YEAR_END_UDF(DATE '2022-01-01'),
PUBLIC.TD_YEAR_END_UDF(DATE '2022-04-12');
출력:
2022-12-31, 2022-12-31
PERIOD_OVERLAPS_UDF¶
정의¶
OVERLAPS OPERATOR 기능을 구현하는 사용자 정의 함수(UDF)입니다. 이 함수는 2개 이상의 기간을 비교하여 겹치는 시간 범위가 있는지 확인합니다.
PERIOD_OVERLAPS_UDF(PERIODS ARRAY)
매개 변수¶
PERIODS
는 기간을 포함하는 배열입니다
비교할 모든 기간 식입니다.
반환¶
세트의 모든 기간에 공통 요소가 1개 이상 있는 경우(중첩) TRUE, 그렇지 않은 경우 FALSE.
마이그레이션 예시¶
SELECT
PERIOD(DATE '2009-01-01', DATE '2010-09-24')
OVERLAPS
PERIOD(DATE '2009-02-01', DATE '2009-06-24');
출력:
SELECT
PUBLIC.PERIOD_OVERLAPS_UDF(ARRAY_CONSTRUCT(PUBLIC.PERIOD_UDF(DATE '2009-01-01', DATE '2010-09-24') !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!, PUBLIC.PERIOD_UDF(DATE '2009-02-01', DATE '2009-06-24') !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!)) !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!;
WEEK_NUMBER_OF_QUARTER_COMPATIBLE_UDF¶
정의¶
지정된 날짜가 현재 분기 내에서 어느 주에 해당하는지 계산합니다.
PUBLIC.WEEK_NUMBER_OF_QUARTER_COMPATIBLE_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
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')
출력:
5, 1
ROMAN_NUMERALS_MONTH_UDF¶
정의¶
날짜를 해당 월에 해당하는 로마 숫자로 변환합니다.
PUBLIC.ROMAN_NUMERALS_MONTH_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
월을 추출할 입력 날짜입니다.
반환¶
지정된 날짜에서 추출한 월을 나타내는 varchar
입니다.
사용법 예¶
입력:
SELECT PUBLIC.ROMAN_NUMERALS_MONTH_UDF(DATE '2021-10-26');
출력:
'X'
TD_YEAR_BEGIN_UDF¶
정의¶
지정된 날짜의 연초를 반환하여 TD_YEAR_BEGIN 또는 TD_YEAR_BEGIN(DATE, ‘COMPATIBLE’)의 동작을 모방하는 사용자 정의 함수(UDF)입니다.
PUBLIC.TD_YEAR_BEGIN_UDF(INPUT DATE)
매개 변수¶
INPUT
DATE
현재 연도의 첫날을 가져옵니다.
반환¶
1월의 첫날.
사용법 예¶
입력:
SELECT TD_YEAR_BEGIN(DATE '2022-01-01', 'COMPATIBLE'),
TD_YEAR_BEGIN(DATE '2022-04-12');
출력:
2022-01-01, 2022-01-01
FULL_MONTH_NAME_UDF¶
정의¶
전체 대문자, 전체 소문자 또는 첫 글자만 대문자로 표시하는 등 원하는 형식으로 월의 전체 이름을 반환합니다.
PUBLIC.FULL_MONTH_NAME_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
매개 변수¶
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');
출력:
OCTOBER
october
October
TO_BYTES_HEX_UDF¶
정의¶
소수점(base 10)을 16진수(base 16) 표현으로 변환합니다.
TO_BYTES_HEX_UDF(INPUT FLOAT)
매개 변수¶
INPUT
은 부동 소수점 숫자 매개 변수입니다.
16진수 형식으로 변환할 숫자입니다.
반환¶
16진수 값을 나타내는 문자열입니다.
사용법 예¶
입력:
SELECT TO_BYTES_HEX_UDF('448');
출력:
01c0
PERIOD_INTERSECT_UDF¶
정의¶
P_INTERSECT 연산자를 복제하는 사용자 정의 함수(UDF)입니다. 이 함수는 2개 이상의 기간을 비교하고 겹치는 부분을 식별하여 그 사이의 공통 시간 간격을 반환합니다.
소스 함수에 대한 자세한 내용은 설명서를 참고하시기 바랍니다.
PERIOD_INTERSECT_UDF(PERIODS ARRAY)
매개 변수¶
PERIODS
는 기간을 포함하는 배열입니다.
비교해야 하는 모든 기간 식입니다.
반환¶
두 기간이 교차하거나 공통 날짜를 공유하는 섹션입니다.
마이그레이션 예시¶
입력:
SELECT
PERIOD(DATE '2009-01-01', DATE '2010-09-24')
P_INTERSECT
PERIOD(DATE '2009-02-01', DATE '2009-06-24');
출력:
SELECT
PUBLIC.PERIOD_INTERSECT_UDF(ARRAY_CONSTRUCT(PUBLIC.PERIOD_UDF(DATE '2009-01-01', DATE '2010-09-24') !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!, PUBLIC.PERIOD_UDF(DATE '2009-02-01', DATE '2009-06-24') !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!)) !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!;
INTERVAL_TO_SECONDS_UDF¶
정의¶
시간 간격을 초 단위로 변환합니다.
PUBLIC.INTERVAL_TO_SECONDS_UDF
(INPUT_PART VARCHAR(30), INPUT_VALUE VARCHAR())
매개 변수¶
INPUT_PART
는 입력 데이터를 저장하는 VARCHAR 타입의 변수입니다.
초 단위로 변환할 시간 기간입니다.
INPUT_VALUE
VARCHAR - 텍스트 데이터를 허용하는 입력 변수입니다. - 텍스트 데이터를 허용하는 입력 변수입니다.
변환을 위한 시간 간격 유형입니다. 예를 들어, ‘DAY’, ‘DAY TO HOUR’ 및 기타 유효한 간격 유형이 있습니다.
반환¶
시간 간격을 초 단위로 나타내는 소수점 숫자입니다.
TIMESTAMP_ADD_UDF¶
정의¶
2개의 타임스탬프를 1개의 값으로 결합합니다.
PUBLIC.TIMESTAMP_ADD_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
매개 변수¶
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)
매개 변수¶
INPUT_PART
는 입력 데이터를 저장하는 VARCHAR 타입의 변수입니다.
곱셈에 사용되는 값으로, ‘YEAR TO MONTH’로 지정됩니다.
INPUT_VALUE
VARCHAR
곱할 간격입니다.
INPUT_MULT
는 입력 값의 승수 역할을 하는 정수 매개 변수입니다.
곱셈 작업에 사용할 숫자입니다.
반환¶
출력은 시간 간격에 숫자 값을 곱하여 계산됩니다.
마이그레이션 예시¶
입력:
SELECT INTERVAL '6-10' YEAR TO MONTH * 8;
출력:
SELECT
PUBLIC.INTERVAL_MULTIPLY_UDF('YEAR TO MONTH', '6-10', 8);
TD_DAY_OF_WEEK_UDF¶
정의¶
Teradata의 TD_DAY_OF_WEEK
기능을 복제하는 사용자 정의 함수(UDF)입니다. 원래 Teradata 함수에 대한 자세한 내용은 여기 를 참조하십시오.
PUBLIC.TD_DAY_OF_WEEK_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
요일을 가져올 날짜입니다.
반환¶
요일을 나타내는 1~7 사이의 정수입니다.
1 = 일요일
2 = 월요일
3 = 화요일
4 = 수요일
5 = 목요일
6 = 금요일
7 = 토요일
마이그레이션 예시¶
입력:
SELECT td_day_of_week(DATE '2022-03-02');
출력:
SELECT
PUBLIC.TD_DAY_OF_WEEK_UDF(DATE '2022-03-02');
ISO_YEAR_PART_UDF¶
정의¶
지정된 날짜로부터 ISO 달력 연도를 계산합니다. 유지할 자릿수를 지정하면 결과를 더 짧게 생성할 수 있습니다.
PUBLIC.ISO_YEAR_PART_UDF(INPUT TIMESTAMP_TZ, DIGITS INTEGER)
매개 변수¶
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);
출력:
'021'
'21'
'1'
DIFF_TIME_PERIOD_UDF¶
정의¶
지정된 시간 단위 매개 변수를 기준으로 두 날짜 사이의 시간 간격을 계산합니다.
PUBLIC.DIFF_TIME_PERIOD_UDF(TIME STRING, PERIOD VARCHAR(50))
매개 변수¶
TIME
은 시간, 분, 초, 분 단위로 시간 값을 저장하는 데 사용되는 데이터 타입입니다. 는 텍스트 문자열로 저장된 시간 값을 나타내는 데이터 타입입니다.
앵커 포인트로 사용할 타임스탬프입니다.
PERIOD
기간을 나타내는 텍스트 필드(VARCHAR)입니다
확장에 사용되는 기간 열입니다.
반환¶
두 날짜 사이의 시간 간격을 나타내는 숫자 값입니다.
사용법 예¶
입력:
SELECT DIFF_TIME_PERIOD_UDF('SECONDS','2022-11-26 10:15:20.000*2022-11-26 10:15:25.000');
출력:
5
WEEK_NUMBER_OF_QUARTER_ISO_UDF¶
정의¶
ISO 달력 기준을 사용하여 날짜가 해당 분기 내에서 어느 주에 해당하는지 계산합니다. 이 함수는 Teradata의 WEEKNUMBER_OF_QUARTER(DATE, 'ISO')
함수와 동일하게 작동합니다.
PUBLIC.WEEK_NUMBER_OF_QUARTER_ISO_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
분기 중 어느 주에 해당하는지 계산하는 데 사용되는 날짜입니다.
반환¶
분기 중 어느 주(1~13)를 나타내는 정수입니다.
사용법 예¶
입력:
SELECT WEEKNUMBER_OF_QUARTER(DATE '2022-05-01', 'ISO'),
WEEKNUMBER_OF_QUARTER(DATE '2022-07-06', 'ISO')
출력:
SELECT
PUBLIC.SUBSTR_UDF('Hello World!', -2);
NVP_UDF¶
정의¶
Teradata의 NVP 함수 와 동일한 함수를 수행합니다.
NVP_UDF(INSTRING VARCHAR, NAME_TO_SEARCH VARCHAR, NAME_DELIMITERS VARCHAR, VALUE_DELIMITERS VARCHAR, OCCURRENCE FLOAT)
매개 변수¶
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);
출력:
orange chicken
MONTH_SHORT_UDF¶
정의¶
대문자, 소문자, 첫 글자 대문자 중 원하는 형식으로 월의 약칭 이름(3자)을 반환합니다. 예를 들어, 예: “Jan”, “jan”또는 “JAN”.
PUBLIC.MONTH_SHORT_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
매개 변수¶
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');
출력:
OCT
oct
Oct
DATE_TO_INT_UDF¶
정의¶
UDF (사용자 정의 함수)는 날짜 값을 숫자 표현으로 변환하는 함수로, Teradata의 DATE-TO-NUMERIC 함수와 유사합니다.
PUBLIC.DATE_TO_INT_UDF(DATE_TO_CONVERT DATE)
매개 변수¶
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;
출력:
SELECT
mod(PUBLIC.DATE_TO_INT_UDF(date '2015-11-26'), 5890),
sin(PUBLIC.DATE_TO_INT_UDF(CURRENT_DATE()));
CREATE TABLE PUBLIC.SAMPLE_TABLE
(
VARCHAR_TYPE VARCHAR,
CHAR_TYPE CHAR(11),
INTEGER_TYPE INTEGER,
DATE_TYPE DATE,
TIMESTAMP_TYPE TIMESTAMP,
TIME_TYPE TIME,
PERIOD_TYPE VARCHAR(24) COMMENT 'PERIOD(DATE)' /*** MSC-WARNING - MSCEWI1036 - PERIOD DATA TYPE "PERIOD(DATE)" CONVERTED TO VARCHAR ***/
);
CREATE OR REPLACE VIEW PUBLIC.SAMPLE_VIEW
AS
SELECT
PUBLIC.DATE_TO_INT_UDF(DATE_TYPE),
PUBLIC.DATE_TO_INT_UDF(DATE_TYPE),
PUBLIC.DATE_TO_INT_UDF(DATE_TYPE),
PUBLIC.DATE_TO_INT_UDF(DATE_TYPE),
PUBLIC.DATE_TO_INT_UDF(DATE_TYPE)
FROM PUBLIC.SAMPLE_TABLE;
PERIOD_UDF¶
정의¶
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)
매개 변수¶
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');
출력:
2005-02-03*2005-02-04,
2005-02-03*2005-02-04,
2005-02-03 12:12:12.340000*2005-02-03 12:12:12.340001,
2005-02-03 12:12:12.340000*2005-02-03 12:12:12.340001
DAYNAME_LONG_UDF (TIMESTAMP_TZ, VARCHAR)¶
경고
이 옵션은 2개의 다른 매개 변수 유형을 허용하는 사용자 정의 함수(UDF)입니다.
정의¶
요일의 전체 이름을 대문자, 소문자 또는 대문자 형식(예: “MONDAY”, “monday” 또는 “Monday”) 중 원하는 형식으로 반환합니다.
PUBLIC.DAYNAME_LONG_UDF(INPUT TIMESTAMP_TZ, RESULTCASE VARCHAR)
매개 변수¶
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');
출력:
'TUESDAY'
'tuesday'
'Tuesday'
TD_DAY_OF_WEEK_COMPATIBLE_UDF¶
정의¶
타임스탬프를 처리하여 어느 요일에 해당하는지 확인합니다. 이 함수는 DAYNUMBER_OF_WEEK(DATE, 'COMPATIBLE')
함수와 동일하게 작동합니다.
PUBLIC.TD_DAY_OF_WEEK_COMPATIBLE_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
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');
출력:
1, 6
JAROWINKLER_UDF¶
정의¶
Jaro-Winkler 알고리즘을 사용하여 두 문자열이 얼마나 유사한지 계산합니다. 이 알고리즘은 0(완전히 다름)에서 1(동일) 사이의 점수를 부여합니다.
PUBLIC.JAROWINKLER_UDF (string1 VARCHAR, string2 VARCHAR)
매개 변수¶
VARCHAR 타입의 string1
처리될 텍스트
VARCHAR 타입의 string2
처리될 텍스트
반환¶
이 함수는 0 또는 1을 반환합니다.
사용법 예¶
입력:
SELECT PUBLIC.JAROWINKLER_UDF('święta', 'swieta')
출력:
0.770000
YEAR_BEGIN_ISO_UDF¶
정의¶
UDF 를 사용하여 지정된 날짜의 ISO 연도 첫날을 계산합니다. DAYOFWEEKISO
함수를 PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF
와 함께 사용하여 매년 1월 1일에 가장 가까운 월요일을 찾는 방식으로 작동합니다. 이 함수는 이번 월요일의 위치를 찾기 위해 날짜를 더하거나 뺍니다.
PUBLIC.YEAR_BEGIN_ISO_UDF(INPUT DATE)
매개 변수¶
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');
출력:
2021-01-04, 2022-01-03
YEAR_PART_UDF¶
정의¶
날짜에서 연도를 추출하여 지정된 자릿수로 잘라냅니다.
PUBLIC.YEAR_PART_UDF(INPUT TIMESTAMP_TZ, DIGITS INTEGER)
매개 변수¶
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);
출력:
'021'
'21'
'1'
YEAR_WITH_COMMA_UDF¶
정의¶
날짜에서 연도를 추출하고 첫 번째와 두 번째 자릿수 사이에 쉼표를 추가합니다. 예를 들어, 연도가 2023인 경우 “2,023”을 반환합니다.
PUBLIC.YEAR_WITH_COMMA_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
연도를 추출할 입력 날짜입니다.
반환¶
날짜 값의 연도 부분을 쉼표 구분 기호가 있는 varchar(텍스트)로 반환합니다.
사용법 예¶
입력:
SELECT PUBLIC.YEAR_WITH_COMMA_UDF(DATE '2021-10-26');
출력:
'2,021'
MONTHS_BETWEEN_UDF¶
정의¶
두 날짜 사이의 개월 수 계산하기
MONTHS_BETWEEN_UDF(FIRST_DATE TIMESTAMP_LTZ, SECOND_DATE TIMESTAMP_LTZ)
매개 변수¶
FIRST_DATE
는 날짜 및 시간 정보를 모두 포함하는 타임스탬프 열로, 시간대(TIMESTAMP_LTZ)를 지원합니다
함수가 데이터 처리를 시작할 초기 날짜입니다.
SECOND_DATE
TIMESTAMP_LTZ
카운트를 중지할 시점을 정의하는 종료일입니다.
반환¶
두 날짜 사이의 기간(개월 단위)입니다.
사용법 예¶
입력:
SELECT MONTHS_BETWEEN_UDF('2022-02-14', '2021-02-14');
출력:
12
SECONDS_PAST_MIDNIGHT_UDF¶
정의¶
지정된 시간 동안 자정부터 경과한 시간(초)을 계산합니다.
PUBLIC.SECONDS_PAST_MIDNIGHT_UDF(INPUT TIME)
매개 변수¶
INPUT
TIME
이 함수는 자정(00:00:00) 이후 현재 시간까지 경과한 총 시간(초)을 계산합니다.
반환¶
자정 이후 경과한 시간(초)을 나타내는 varchar
값입니다.
사용법 예¶
입력:
SELECT PUBLIC.SECONDS_PAST_MIDNIGHT_UDF(TIME'10:30:45');
출력:
'37845'
CHAR2HEXINT_UDF¶
정의¶
입력 문자열에 있는 각 문자의 16진수(베이스 16) 표현이 포함된 문자열을 반환합니다.
PUBLIC.CHAR2HEXINT_UDF(INPUT_STRING VARCHAR);
매개 변수¶
INPUT_STRING
는 텍스트 데이터를 저장하는 VARCHAR 타입의 변수입니다.
변환해야 하는 입력 문자열입니다.
반환¶
입력 문자열의 16진수 표현이 포함된 문자열을 반환합니다.
예¶
입력:
SELECT CHAR2HEXINT('1234') from t1;
출력:
SELECT
PUBLIC.CHAR2HEXINT_UDF('1234') from
t1;
소스 함수의 추가 정보¶
함수 설명서는 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())
매개 변수¶
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;
출력:
CREATE OR REPLACE TABLE INTERVAL_TABLE
(
INTERVAL_YEAR_TYPE VARCHAR(21) !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - INTERVAL YEAR DATA TYPE CONVERTED TO VARCHAR ***/!!!
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"teradata"}}'
;
SELECT
PUBLIC.INTERVAL_ADD_UDF(INTERVAL_YEAR_TYPE, 'YEAR', '7', 'MONTH', '-', 'YEAR TO MONTH')
FROM
INTERVAL_TABLE;
DAY_OF_WEEK_LONG_UDF¶
정의¶
타임스탬프를 요일의 전체 이름(예: “월요일”, “화요일”등)으로 변환하는 사용자 정의 함수(UDF)입니다.
PUBLIC.DAY_OF_WEEK_LONG_UDF(INPUT_DATE TIMESTAMP)
매개 변수¶
INPUT_DATE
는 타임스탬프 값을 나타냅니다
타임스탬프는 전체 날짜 이름(예: “월요일”, “화요일”등)으로 변환됩니다.
반환¶
영어로 된 오늘의 이름입니다.
TD_WEEK_OF_CALENDAR_UDF¶
정의¶
사용자 정의 함수(UDF)는 Teradata의 TD_WEEK_OF_CALENDAR 기능을 직접 대체하는 역할을 하며, Snowflake에서 동일한 기능을 제공합니다.
PUBLIC.TD_WEEK_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
1900년 1월 1일 이후 경과한 주 수를 계산하는 데 사용되는 날짜입니다.
반환¶
1900년 1월 1일과 지정된 날짜 사이의 완전한 주 수를 나타내는 정수입니다
마이그레이션 예시¶
입력:
SELECT TD_WEEK_OF_CALENDAR(DATE '2023-11-30')
출력:
SELECT
PUBLIC.TD_WEEK_OF_CALENDAR_UDF(DATE '2023-11-30');
WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF¶
정의¶
마이너스 기호(-) 대신 꺾쇠 괄호(< >)를 사용하도록 음수를 변환합니다. 이 변환은 PR (괄호) 형식 요소가 원래 Teradata 형식 문자열에 있을 때 발생합니다.
PUBLIC.WRAP_NEGATIVE_WITH_ANGLE_BRACKETS_UDF(INPUT NUMBER, FORMATARG VARCHAR)
매개 변수¶
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');
출력:
'8456'
'<8456>'
INSTR_UDF (STRING, STRING)¶
경고
이 옵션은 2개의 다른 매개 변수 세트 를 허용하는 사용자 정의 함수(UDF)입니다.
정의¶
Source_string 내에 search_string이 표시되는 모든 인스턴스를 찾습니다.
PUBLIC.INSTR_UDF(SOURCE_STRING STRING, SEARCH_STRING STRING)
매개 변수¶
SOURCE_STRING
은 처리해야 하는 입력 문자열을 나타냅니다
검색할 텍스트입니다.
SEARCH_STRING
은 검색할 텍스트를 지정하는 STRING 타입의 매개 변수입니다.
함수가 찾아서 일치시킬 텍스트 패턴입니다.
반환¶
소스 문자열에서 패턴을 찾을 수 있는 인덱스 위치(위치 1부터 시작)입니다.
사용법 예¶
입력:
SELECT INSTR_UDF('INSTR FUNCTION','N');
출력:
2
TRANSLATE_CHK_UDF¶
정의¶
오류가 발생하지 않고 코드가 성공적으로 변환될 수 있는지 확인합니다.
PUBLIC.TRANSLATE_CHK_UDF(COL_NAME STRING, SOURCE_REPERTOIRE_NAME STRING)
매개 변수¶
COL_NAME
은 열 이름을 나타내는 문자열 변수입니다.
유효성을 검사해야 하는 열입니다.
SOURCE_REPERTOIRE_NAME
은 소스 디렉터리 이름을 지정하는 문자열 매개 변수입니다.
소스 컬렉션 또는 라이브러리의 이름입니다.
반환¶
0: 변환이 오류 없이 성공적으로 완료되었습니다. NULL: 결과가 반환되지 않았습니다(null 값).
문자열에서 첫 번째 문자의 위치로 인해 변환 오류가 발생했습니다.
사용법 예¶
입력:
SELECT PUBLIC.TRANSLATE_CHK_UDF('ABC', 'UNICODE_TO_LATIN');
출력:
0
EXPAND_ON_UDF¶
참고
가독성을 높이기 위해 이 예제에서는 코드의 일부 섹션을 간소화했습니다.
정의¶
Teradata의 확장 함수의 동작을 복제합니다.
PUBLIC.EXPAND_ON_UDF(TIME STRING, SEQ NUMBER, PERIOD STRING)
매개 변수¶
TIME
은 시간 값을 텍스트(STRING)로 저장하는 데이터 타입입니다.
앵커가 완전히 확장되는 데 필요한 시간입니다.
SEQ
시퀀스 번호
각 행의 값이 계산되는 순서입니다.
PERIOD
기간을 나타내는 텍스트 값입니다
지정된 기간의 날짜입니다.
반환¶
확장 절에서 확장 기간을 계산하는 방법을 정의하는 VARCHAR
값입니다.
마이그레이션 예시¶
입력:
SELECT bg FROM table1 EXPAND ON pd AS bg BY ANCHOR ANCHOR_SECOND;
출력:
WITH
ExpandOnCTE AS
(
SELECT
PUBLIC.EXPAND_ON_UDF('ANCHOR_SECOND', VALUE, pd) bg
FROM
table1,
TABLE(FLATTEN(PUBLIC.ROW_COUNT_UDF(PUBLIC.DIFF_TIME_PERIOD_UDF('ANCHOR_SECOND', pd))))
)
SELECT
bg
FROM
table1,
ExpandOnCTE;
ROW_COUNT_UDF¶
정의¶
1부터 DIFF_TIME_PERIOD_UDF 가 반환한 값까지 일련번호가 포함된 배열을 반환합니다.
PUBLIC.ROW_COUNT_UDF(NROWS DOUBLE)
매개 변수¶
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'));
출력:
[1, 2, 3, 4, 5]
마이그레이션 예시¶
입력:
SELECT NORMALIZE emp_id, duration FROM project EXPAND ON duration AS bg BY ANCHOR ANCHOR_SECOND;
출력:
WITH ExpandOnCTE AS
(
SELECT
PUBLIC.EXPAND_ON_UDF('ANCHOR_SECOND', VALUE, duration) bg
FROM
project,
TABLE(FLATTEN(PUBLIC.ROW_COUNT_UDF(PUBLIC.DIFF_TIME_PERIOD_UDF('ANCHOR_SECOND', duration))))
)
SELECT NORMALIZE emp_id,
duration
FROM
project,
ExpandOnCTE;
CENTURY_UDF¶
정의¶
지정된 날짜의 세기를 계산합니다.
PUBLIC.CENTURY_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
세기를 결정하는 데 사용되는 입력 날짜입니다.
반환¶
지정된 날짜의 세기 숫자를 varchar로 반환합니다.
사용법 예¶
입력:
SELECT PUBLIC.CENTURY_UDF(DATE '1915-02-23');
출력:
'20'
TIME_DIFFERENCE_UDF¶
경고
이 UDF 는 이제 Snowflake에서 동등한 기본 제공 함수를 제공하므로 더 이상 사용되지 않습니다. 자세한 내용은 TIMEDIFF 설명서를 참조하십시오.
정의¶
지정된 두 타임스탬프 사이의 시간 간격을 계산합니다.
PUBLIC.TIME_DIFFERENCE_UDF
(MINUEND TIME, SUBTRAHEND TIME, INPUT_PART VARCHAR)
매개 변수¶
MINUEND
뺄 타임스탬프 값입니다
원래 값에서 빼야 할 시간입니다.
SUBTRAHEND
다른 타임스탬프에서 뺄 타임스탬프 값입니다
시간이 차감되었습니다.
INPUT_PART
는 입력 데이터를 저장하는 VARCHAR 타입의 변수입니다.
EXTRACT_PART
는 문자열에서 추출된 부분을 저장하는 VARCHAR 유형의 변수입니다.
시간 간격에서 숫자 값을 추출합니다.
반환¶
특정 시간을 나타내는 텍스트 값(VARCHAR)입니다.
예¶
입력:
select extract(day from (timestampColumn1 - timestampColumn2 day to hour)) from tableName;
출력:
SELECT
EXTRACT_TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'DAY TO HOUR', 'DAY')
from
tableName;
INTERVAL_DIVIDE_UDF¶
정의¶
간격 나누기 계산을 수행하는 사용자 정의 함수(UDF)입니다.
PUBLIC.INTERVAL_DIVIDE_UDF
(INPUT_PART VARCHAR(30), INPUT_VALUE VARCHAR(), INPUT_DIV INTEGER)
매개 변수¶
INPUT_PART
는 데이터의 입력 부분을 나타내는 VARCHAR 타입의 변수입니다.
간격 유형을 지정하는 값(예: ‘YEARTOMONTH’).
INPUT_VALUE
VARCHAR
분할할 시간 간격입니다.
INPUT_DIV
는 입력된 제수를 나타내는 정수 값입니다.
다른 숫자로 나눌 수 있는 숫자입니다.
반환¶
출력은 시간 간격을 숫자 값으로 나누어 계산합니다.
마이그레이션 예시¶
입력:
SELECT INTERVAL '6-10' YEAR TO MONTH / 8;
출력:
SELECT
PUBLIC.INTERVAL_DIVIDE_UDF('YEAR TO MONTH', '6-10', 8);
DAYNUMBER_OF_MONTH_UDF¶
정의¶
UDF 는 지정된 타임스탬프가 속한 달의 요일을 결정합니다. 이 함수는 Teradata의 DAYNUMBER_OF_MONTH(DATE, ‘ISO’) 함수와 유사하게 작동합니다.
PUBLIC.DAYNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
해당 요일을 결정하는 데 사용되는 날짜 값입니다.
반환¶
1~33(포함)까지의 정수입니다.
예¶
입력:
SELECT DAYNUMBER_OF_MONTH (DATE'2022-12-22', 'ISO');
출력:
SELECT
PUBLIC.DAYNUMBER_OF_MONTH_UDF(DATE'2022-12-22');
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)
매개 변수¶
INPUT
TIMESTAMP_TZ
ISO 연도 형식을 사용하여 12월의 마지막 날을 가져오려면 12월 31일을 사용합니다.
반환¶
12월 31일을 나타내는 날짜(ISO 연도 형식)입니다.
사용법 예¶
입력:
SELECT PUBLIC.LAST_DAY_DECEMBER_OF_ISO_UDF(DATE '2022-01-01');
출력:
2021-12-31
DATEADD_UDF¶
참고
가독성을 높이기 위해 이 예제에서는 코드의 일부 섹션을 간소화했습니다.
정의¶
두 날짜의 합계를 계산하는 함수
PUBLIC.DATE_ADD_UDF(FIRST_DATE DATE, SECOND_DATE DATE)
매개 변수¶
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;
출력:
SELECT
PUBLIC.DATEADD_UDF(CAST(CAST(COLUMNB AS DATE) !!!RESOLVE EWI!!! /*** SSC-EWI-0033 - FORMAT 'MM/DD/YYYY' REMOVED, SEMANTIC INFORMATION NOT FOUND. ***/!!! AS TIMESTAMP(0)), PUBLIC.TO_INTERVAL_UDF(CAST(COLUMNA AS TIME(0)) !!!RESOLVE EWI!!! /*** SSC-EWI-0033 - FORMAT 'HHMISS' REMOVED, SEMANTIC INFORMATION NOT FOUND. ***/!!!))
FROM
TIMEDIFF;
JULIAN_TO_DATE_UDF¶
정의¶
율리우스력 날짜 형식(YYYYDDD)을 표준 그레고리력 날짜(YYYY - MM - DD)로 변환하는 사용자 정의 함수(UDF)입니다.
PUBLIC.JULIAN_TO_DATE_UDF(JULIAN_DATE CHAR(7))
매개 변수¶
JULIAN_DATE
CHAR - 날짜를 율리우스력 형식으로 저장하는 데 사용되는 문자 데이터 타입입니다.
율리우스력 형식에서 변환할 날짜입니다.
반환¶
율리우스력 날짜의 날짜 표현을 반환하거나 변환을 수행할 수 없는 경우 null을 반환합니다.
사용법 예¶
입력:
SELECT JULIAN_TO_DATE_UDF('2022045');
출력:
'2022-02-14'
마이그레이션 예시¶
입력:
SELECT TO_DATE('2020002', 'YYYYDDD');
출력:
SELECT
PUBLIC.JULIAN_TO_DATE_UDF('2020002');
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)
매개 변수¶
INPUT
TIMESTAMP_TZ
ISO 연도 형식을 사용하여 1월 1일을 나타내는 날짜입니다.
반환¶
지정된 ISO 달력 연도의 1월 1일을 나타내는 날짜입니다.
사용법 예¶
입력:
SELECT PUBLIC.FIRST_DAY_JANUARY_OF_ISO_UDF(DATE '2022-01-01');
출력:
2021-01-01
TIMESTAMP_DIFFERENCE_UDF¶
정의¶
사용자 정의 함수를 사용하여 두 날짜를 빼는 방법 (UDF)
PUBLIC.TIMESTAMP_DIFFERENCE_UDF
(MINUEND TIMESTAMP, SUBTRAHEND TIMESTAMP, INPUT_PART VARCHAR)
Teradata와 Snowflake 날짜 시간 빼기의 차이점¶
Teradata와 Snowflake는 날짜 및 시간 계산에 서로 다른 방법을 사용합니다. 구문, 출력 데이터 타입, 전체 자릿수 수준이 다릅니다.
구문: Teradata에서 DATE, TIMESTAMP, TIME 빼기는 빼기 기호 및 간격을 사용하여 결과 형식을 지정합니다. 자세한 내용은 https://docs.teradata.com/r/w19R4KsuHIiEqyxz0WYfgA/7kLLsWrP0kHxbk3iida0mA 섹션을 참조하십시오. Snowflake는 다음의 3가지 함수를 사용하여 이러한 작업을 다르게 처리합니다.
DATEDIFF (모든 날짜 유형에서 작동)
TIMESTAMPDIFF
TIMEDIFF 각 함수에는 비교할 두 날짜와 반환할 날짜 부분이 필요합니다. DATE 타입의 경우 빼기 기호를 사용하여 일 단위의 차액을 반환할 수도 있습니다.
반환 유형: Teradata는 다양한 간격 유형을 반환합니다.(https://www.docs.teradata.com/r/T5QsmcznbJo1bHmZT2KnFw/z~5iW7rYVstcmNYbd6Dsjg) 참조. Snowflake의 함수는 단위 수를 나타내는 정수를 반환합니다. 자세한 내용은 https://docs.snowflake.com/en/sql-reference/functions/datediff.html 섹션을 참조하십시오.
반올림: DATEDIFF 에서 날짜 부분을 처리하는 방식은 Teradata와 다른 결과를 생성할 수 있습니다. 구체적인 반올림 동작은 https://docs.snowflake.com/en/sql-reference/functions/datediff.html#usage-notes 섹 션을 참조하십시오.
경고
날짜 계산을 수행할 때 반올림 또는 시간대 차이로 인해 결과가 하루 정도 다를 수 있습니다.
매개 변수¶
MINUEND
뺄 타임스탬프 값은 다음에서 뺄 타임스탬프 값을 나타냅니다
뺄셈의 시작점으로 사용되는 날짜입니다.
SUBTRAHEND
는 다른 타임스탬프에서 뺄 타임스탬프 값입니다.
날짜가 제거되었습니다.
INPUT_PART
는 VARCHAR (가변 길이 문자 문자열) 유형의 변수입니다
반환해야 하는 부분.
반환¶
지정된 INPUT_PART
매개 변수에 따라 문자열 값을 형식화합니다.
예¶
입력:
select (timestampColumn1 - timestampColumn2 YEAR) from tableName;
SELECT
(
PUBLIC.TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'YEAR')) from
tableName;
FIRST_DAY_OF_MONTH_ISO_UDF¶
정의¶
사용자 정의 함수(UDF)는 ISO 형식(YYYY-MM-DD)으로 지정된 월의 첫날을 반환합니다.
PUBLIC.FIRST_DAY_OF_MONTH_ISO_UDF(YEAR NUMBER, MONTH NUMBER)
매개 변수¶
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)
매개 변수¶
NUMERIC_EXPRESSION
은 정수로 평가되는 숫자 값 또는 식을 나타냅니다
특정 형식으로 날짜를 나타내는 값(예: YYYY-MM-DD)입니다
반환¶
날짜 형식으로 변환된 숫자입니다.
예¶
입력:
SELECT * FROM table1
WHERE date_column > 1011219
출력:
SELECT
* FROM
table1
WHERE date_column > PUBLIC.INT_TO_DATE_UDF( 1011219);
NULLIFZERO_UDF¶
정의¶
데이터에서 0 값을 NULL 로 대체하여 0으로 나누기 오류를 방지합니다.
PUBLIC.NULLIFZERO_UDF(NUMBER_TO_VALIDATE NUMBER)
매개 변수¶
NUMBER_TO_VALIDATE
NUMBER
유효성 검사가 필요한 번호입니다.
반환¶
입력된 숫자가 0이면 null을 반환하고, 그렇지 않으면 원래 숫자를 반환합니다.
사용법 예¶
SELECT NULLIFZERO_UDF(0);
출력:
NULL
DATE_LONG_UDF¶
정의¶
날짜를 ‘일, 월 DD, YYYY’ 형식으로 변환합니다(예: ‘월요일, 2024년 01월 01일’). 이 형식은 Teradata의 DL 날짜 형식 요소와 일치합니다.
PUBLIC.DATE_LONG_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
날짜는 긴 날짜 형식으로 표시해야 합니다(예: “2023년 9월 15일”).
반환¶
Teradata DL 형식 요소를 나타내는 VARCHAR
데이터 타입입니다.
사용법 예¶
입력:
SELECT PUBLIC.DATE_LONG_UDF(DATE '2021-10-26');
출력:
'Tuesday, October 26, 2021'
TD_MONTH_OF_CALENDAR_UDF¶
정의¶
사용자 정의 함수(UDF)는 Teradata의 TD_MONTH_OF_CALENDAR 기능을 대체하는 역할을 하며, 동일한 기능을 제공합니다.
PUBLIC.TD_MONTH_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
1900년 1월 1일 이후 경과한 개월 수를 계산하는 데 사용되는 날짜입니다.
반환¶
1900년 1월 1일부터 지정된 날짜 사이의 개월 수를 나타내는 정수입니다
마이그레이션 예시¶
입력:
SELECT TD_MONTH_OF_CALENDAR(DATE '2023-11-30')
출력:
SELECT
PUBLIC.TD_MONTH_OF_CALENDAR_UDF(DATE '2023-11-30');
MONTH_NAME_LONG_UDF¶
정의¶
타임스탬프를 해당 전체 월 이름으로 변환하는 사용자 정의 함수(UDF)입니다.
PUBLIC.MONTH_NAME_LONG_UDF(INPUT_DATE TIMESTAMP)
매개 변수¶
INPUT
DATE
타임스탬프는 전체 월 이름을 표시하도록 변환해야 합니다.
반환¶
영어로 된 이달의 이름입니다.
TD_DAY_OF_CALENDAR_UDF¶
정의¶
Teradata의 TO_DAY_OF_CALENDAR
기능을 복제하는 사용자 정의 함수(UDF)입니다.
PUBLIC.TD_DAY_OF_CALENDAR_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
1900년 1월 1일 이후 경과한 일수를 계산하는 데 사용되는 날짜입니다.
반환¶
1900년 1월 1일과 INPUT
날짜 사이의 일 수를 나타내는 정수입니다
마이그레이션 예시¶
입력:
SELECT td_day_of_calendar(current_date)
출력:
SELECT
PUBLIC.TD_DAY_OF_CALENDAR_UDF(CURRENT_DATE());
PERIOD_TO_TIME_UDF¶
정의¶
Teradata PERIOD 값을 TIME 값으로 변환하는 함수로, Teradata의 형 변환 동작을 유지합니다.
PERIOD_TO_TIME_UDF(PERIOD_VAL VARCHAR(22))
매개 변수¶
PERIOD_VAL
은 기간 값을 나타냅니다
변환해야 하는 기간입니다.
반환¶
이 함수는 PERIOD
를 나타내는 TIME
값을 반환합니다. 변환을 완료할 수 없으면 null을 반환합니다.
사용법 예¶
입력:
SELECT PERIOD_TO_TIME_UDF(PERIOD_UDF(CURRENT_TIME()));
출력:
08:42:04
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)
매개 변수¶
SOURCE_STRING
은 처리해야 하는 입력 문자열을 나타냅니다
검색할 텍스트 문자열입니다.
SEARCH_STRING
는 검색하려는 텍스트 값입니다.
함수가 찾아서 일치시킬 텍스트 패턴입니다.
POSITION
DOUBLE - 소수점을 배정밀도로 저장하는 숫자 데이터 타입입니다.
텍스트에서 검색이 시작될 위치(위치 1부터 시작)입니다.
OCCURRENCE
DOUBLE - 이벤트 발생 횟수를 나타내는 숫자 데이터 타입으로, 배정밀도 부동소수점 숫자로 저장됩니다.
텍스트에서 검색이 시작될 위치(위치 1부터 시작)입니다.
반환¶
소스 문자열 내에서 지정된 텍스트를 찾을 수 있는 인덱스 위치입니다.
사용법 예¶
입력:
SELECT INSTR_UDF('CHOOSE A CHOCOLATE CHIP COOKIE','CH',2,2);
출력:
20
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))
매개 변수¶
DATE_TO_ROUND
TIMESTAMP_TZ (반올림해야 하는 시간대 정보가 포함된 타임스탬프 값)
반올림해야 하는 날짜 값입니다.
UNIT_TO_ROUND_BY
VARCHAR - 반올림에 사용되는 시간 단위를 지정합니다
날짜 반올림에 사용되는 시간 단위입니다.
반환¶
지정된 시간 단위로 반올림된 날짜를 반환합니다. UNIT_TO_ROUND_BY 매개 변수는 날짜를 반올림하는 방법을 결정합니다.
마이그레이션 예시¶
입력:
SELECT ROUND(CURRENT_DATE, 'RM') RND_DATE
출력:
SELECT
PUBLIC.ROUND_DATE_UDF(CURRENT_DATE(), 'RM') RND_DATE;
SUBSTR_UDF (STRING, FLOAT, FLOAT)¶
경고
이 옵션은 3개의 매개 변수 를 허용하는 사용자 정의 함수(UDF)입니다.
정의¶
시작 및 끝 위치를 사용하여 지정된 문자열에서 텍스트의 일부를 검색합니다.
PUBLIC.SUBSTR_UDF(BASE_EXPRESSION STRING, START_POSITION FLOAT, LENGTH FLOAT)
매개 변수¶
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);
출력:
'','','A','','A'
GETQUERYBANDVALUE_UDF (VARCHAR)¶
경고
이 옵션은 1개의 매개 변수 를 허용하는 사용자 정의 함수(UDF)입니다.
정의¶
트랜잭션, 세션 또는 프로필 쿼리 밴드에 저장된 이름-값 쌍의 값을 반환합니다.
GETQUERYBANDVALUE_UDF(SEARCHNAME VARCHAR)
매개 변수¶
SEARCHNAME
VARCHAR - 검색어 또는 이름을 저장하는 데 사용되는 VARCHAR 타입의 변수입니다. - 검색어 또는 이름을 저장하는 데 사용되는 VARCHAR 타입의 변수입니다.
키-값 페어 내에서 검색할 이름입니다.
반환¶
세션 쿼리 밴드의 “이름” 키 값(없는 경우 null).
사용법 예¶
입력:
ALTER SESSION SET QUERY_TAG = 'user=Tyrone;role=security';
SELECT GETQUERYBANDVALUE_UDF('role');
출력:
security
마이그레이션 예시¶
입력:
SELECT GETQUERYBANDVALUE(1, 'group');
출력:
/** MSC-ERROR - MSCEWI2084 - TRANSACTION AND PROFILE LEVEL QUERY TAGS NOT SUPPORTED IN SNOWFLAKE, REFERENCING SESSION QUERY TAG INSTEAD **/
SELECT GETQUERYBANDVALUE_UDF('group');
TD_WEEK_OF_YEAR_UDF¶
정의¶
연도 내 특정 날짜의 전체 주 수를 계산하는 사용자 정의 함수(UDF)입니다. 이 기능은 Teradata의 TD_WEEK_OF_YEAR
및 WEEKNUMBER_OF_YEAR
기능과 동일한 기능을 제공합니다.
PUBLIC.TD_WEEK_OF_YEAR_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
주 수를 계산하는 데 사용되는 날짜입니다.
반환¶
지정된 날짜가 속한 연도의 어느 주에 해당하는지를 나타내는 숫자 값입니다.
사용법 예¶
입력:
SELECT PUBLIC.WEEK_OF_YEAR_UDF(DATE '2024-05-10'),
PUBLIC.WEEK_OF_YEAR_UDF(DATE '2020-01-03')
출력:
18, 0
EXTRACT_TIMESTAMP_DIFFERENCE_UDF¶
참고
가독성을 높이기 위해 가장 관련성이 높은 부분만 표시하여 코드 예제를 간소화했습니다.
정의¶
MINUEND
에서 SUBTRAHEND
를 뺀 결과에서 ‘Data’ 부분을 검색합니다
PUBLIC.EXTRACT_TIMESTAMP_DIFFERENCE_UDF
(MINUEND TIMESTAMP, SUBTRAHEND TIMESTAMP, INPUT_PART VARCHAR, EXTRACT_PART VARCHAR)
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;
출력:
SELECT
EXTRACT_TIMESTAMP_DIFFERENCE_UDF(timestampColumn1, timestampColumn2, 'DAY TO HOUR', 'DAY')
from
tableName;
JSON_EXTRACT_DOT_NOTATION_UDF¶
정의¶
JavaScript 또는 Python에서 중첩된 속성에 액세스하는 방법과 유사하게 점 표기법을 사용하여 JSON 오브젝트를 쿼리할 수 있는 사용자 정의 함수(UDF)입니다.
JSON_EXTRACT_DOT_NOTATION_UDF(JSON_OBJECT VARIANT, JSON_PATH STRING)
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;
출력:
SELECT
JSON_EXTRACT_DOT_NOTATION_UDF(CAST(varcharColumn AS VARIANT), '$..name')
FROM
variantTest;
WEEK_OF_MONTH_UDF¶
정의¶
특정 날짜가 해당 월의 어느 주에 해당하는지 계산합니다.
PUBLIC.WEEK_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
해당 월이 속한 주를 결정하는 데 사용되는 날짜입니다.
반환¶
특정 날짜가 속한 달의 어느 주에 해당하는지 표시하는 VARCHAR 열입니다.
사용법 예¶
입력:
SELECT PUBLIC.WEEK_OF_MONTH_UDF(DATE '2021-10-26');
출력:
'4'
DAYNAME_LONG_UDF (TIMESTAMP_TZ)¶
경고
이 옵션은 1개의 매개 변수 를 허용하는 사용자 정의 함수(UDF)입니다.
정의¶
UDF 를 호출하면 첫 글자가 대문자(기본 형식)인 요일 이름을 반환하는 DAYNAME_LONG_UDF 함수의 베리언트를 생성합니다.
PUBLIC.DAYNAME_LONG_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
요일을 가져올 날짜입니다.
반환¶
요일의 전체 이름이 포함된 문자열을 반환합니다.
사용법 예¶
입력:
SELECT PUBLIC.DAYNAME_LONG_UDF(DATE '2022-06-30');
출력:
'Thursday'
INTERVAL_TO_MONTHS_UDF¶
정의¶
시간 간격을 월로 변환합니다.
PUBLIC.INTERVAL_TO_MONTHS_UDF
(INPUT_VALUE VARCHAR())
매개 변수¶
INPUT_VALUE
VARCHAR
월로 변경되는 기간입니다.
반환¶
처리할 월 수로, 정수로 지정합니다.
GETQUERYBANDVALUE_UDF (VARCHAR, FLOAT, VARCHAR)¶
경고
이 사용자 정의 함수(UDF)는 3개의 매개 변수를 허용합니다.
정의¶
트랜잭션, 세션 또는 프로필 쿼리 밴드에 저장된 이름-값 쌍의 값을 반환합니다. 이 값은 쿼리 밴드의 특정 이름과 연관됩니다.
GETQUERYBANDVALUE_UDF(QUERYBAND VARCHAR, SEARCHTYPE FLOAT, SEARCHNAME VARCHAR)
매개 변수¶
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');
출력:
Matt
SaraDB
DbAdmin
NULL
마이그레이션 예시¶
입력:
SELECT GETQUERYBANDVALUE('=T> account=Matt;user=Matt200; =S> account=SaraDB;user=Sara;role=DbAdmin;', 0, 'account')
출력:
WITH
--** MSC-WARNING - MSCEWI2078 - THE EXPAND ON CLAUSE FUNCTIONALITY IS TRANSFORMED INTO A CTE BLOCK **
ExpandOnCTE AS
(
SELECT
PUBLIC.EXPAND_ON_UDF('ANCHOR_SECOND', VALUE, duration) bg
FROM
project,
TABLE(FLATTEN(PUBLIC.ROW_COUNT_UDF(PUBLIC.DIFF_TIME_PERIOD_UDF('ANCHOR_SECOND', duration))))
)
SELECT NORMALIZE emp_id,
duration
FROM
project,
ExpandOnCTE;
JULIAN_DAY_UDF¶
정의¶
4713년 1월 1일 BCE (공통 시대 이전) 이후 연속 일수를 나타내는 율리우스력 일수를 계산합니다. 율리우스력은 천문학 및 달력 계산에 사용됩니다.
PUBLIC.JULIAN_DAY_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
율리우스력 날짜로 변환할 날짜입니다.
반환¶
계산된 율리우스력 날짜를 나타내는 varchar
값입니다.
사용법 예¶
입력:
SELECT PUBLIC.JULIAN_DAY_UDF(DATE '2021-10-26');
출력:
'2459514'
WEEKNUMBER_OF_MONTH_UDF¶
정의¶
지정된 날짜로부터 월을 식별합니다.
PUBLIC.WEEKNUMBER_OF_MONTH_UDF(INPUT TIMESTAMP_TZ)
매개 변수¶
INPUT
TIMESTAMP_TZ
월 번호를 계산할 날짜입니다.
반환¶
지정된 날짜의 월(1~12)을 나타내는 숫자 값입니다.
사용법 예¶
입력:
SELECT PUBLIC.WEEKNUMBER_OF_MONTH_UDF(DATE '2022-05-21')
출력:
3
JSON_EXTRACT_UDF¶
정의¶
JSONExtract
, JSONExtractValue
, JSONExtractLargeValue
함수의 동작을 모방하는 사용자 정의 함수(UDF)입니다. 이 UDF 에서는 JSON 오브젝트에서 여러 값을 추출할 수 있습니다.
JSON_EXTRACT_UDF(JSON_OBJECT VARIANT, JSON_PATH STRING, SINGLE_VALUE BOOLEAN)
매개 변수¶
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;
출력:
SELECT
JSON_EXTRACT_UDF(Store, '$..author', FALSE) as AllAuthors
FROM
BookStores;
COMPUTE_EXPAND_ON_UDF¶
정의¶
지정된 기간 타입에 따라 데이터를 확장하는 방법을 결정합니다.
PUBLIC.COMPUTE_EXPAND_ON_UDF(TIME STRING, SEQ NUMBER, PERIOD TIMESTAMP, PERIODTYPE STRING)
매개 변수¶
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)
매개 변수¶
INPUT
TIMESTAMP_TZ
분기 중 어느 주에 해당하는지 계산하는 데 사용되는 날짜입니다.
반환¶
분기 중 어느 주(1~13)를 참조하고 있는지를 나타내는 정수입니다.
사용법 예¶
입력:
SELECT WEEK_NUMBER_OF_QUARTER_UDF(DATE '2023-01-01'),
WEEK_NUMBER_OF_QUARTER_UDF(DATE '2022-10-27')
출력:
1, 4
YEAR_END_ISO_UDF¶
정의¶
ISO 달력 표준을 사용하여 지정된 날짜의 연도 마지막 날을 계산하는 사용자 정의 함수(UDF)로, Teradata의 TD_YEAR_END 함수와 유사합니다.
PUBLIC.YEAR_END_ISO_UDF(INPUT date)
매개 변수¶
INPUT
DATE
ISO 달력 표준에 따라 한 해의 마지막 날을 나타내는 날짜입니다.
반환¶
ISO 달력 시스템에 따른 연중 마지막 날입니다.
사용법 예¶
입력:
SELECT PUBLIC.YEAR_END_ISO_UDF(DATE '2022-01-01'),
PUBLIC.YEAR_END_ISO_UDF(DATE '2022-04-12');
출력:
2022-01-02, 2023-01-01
INSERT_CURRENCY_UDF¶
정의¶
통화 기호와 숫자 사이에 공백이나 기호가 없는지 확인하기 위해 숫자 첫 자릿수 바로 앞에 통화 기호를 삽입합니다.
PUBLIC.INSERT_CURRENCY_UDF(INPUT VARCHAR, CURRENCYINDEX INTEGER, CURRENCYVALUE VARCHAR)
매개 변수¶
INPUT
VARCHAR
통화 형식이 필요한 숫자 값을 변환할 때 TO_CHAR 의 출력입니다.
CURRENCYINDEX
는 통화의 인덱스를 나타내는 정수 값입니다.
통화를 삽입할 배열의 위치입니다.
CURRENCYVALUE
통화 값을 저장하는 VARCHAR 필드
통화 값으로 사용할 텍스트입니다.
반환¶
정의된 위치에 통화 텍스트가 포함된 varchar
필드입니다.
사용법 예¶
입력:
SELECT PUBLIC.INSERT_CURRENCY_UDF(to_char(823, 'S999999'), '1', 'CRC');
출력:
'+CRC823'
INSTR_UDF (STRING, STRING, INT)¶
경고
이 사용자 정의 함수(UDF)는 3개의 매개 변수를 허용합니다.
정의¶
Source_string 내에 search_string이 표시되는 모든 인스턴스를 찾습니다.
PUBLIC.INSTR_UDF(SOURCE_STRING STRING, SEARCH_STRING STRING, POSITION INT)
매개 변수¶
SOURCE_STRING
은 입력으로 사용될 문자열 값을 나타냅니다
검색할 텍스트입니다.
SEARCH_STRING
는 검색하려는 텍스트 값입니다.
함수가 찾아서 일치시킬 텍스트 패턴입니다.
POSITION
은 시퀀스 내 위치를 나타내는 정수 데이터 타입입니다.
텍스트에서 검색이 시작되는 위치(위치 1부터 시작)입니다.
반환¶
원본 문자열 내에서 일치하는 항목이 발견된 위치입니다.
사용법 예¶
입력:
SELECT INSTR_UDF('FUNCTION','N', 3);
출력:
8