SnowConvert AI - Function References - Shared

INTERVAL_MULTIPLY_UDF (VARCHAR, VARCHAR, INTEGER)

定义

此用户定义的函数 (UDF) 用于将时间间隔乘以一个“N”倍值。

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

参数

INPUT_PART VARCHAR

运算的格式。例如:DAYHOUR TO SECOND、 YEAR TO MONTH

INPUT_VALUE VARCHAR

要相乘的时间间隔。

INPUT_MULT INTEGER

乘以时间间隔的倍数。

返回

返回一个包含乘法结果的 varchar。

使用示例

输入:

SELECT INTERVAL_MULTIPLY_UDF('DAY', '2', 100);
Copy

输出:

200
Copy

TRUNC_UDF (TIMESTAMP_LTZ, VARCHAR)

定义

此用户定义的函数 (UDF) 重现了指定格式参数时的 Teradata 和 Oracle TRUNC(Date) 功能。

TRUNC_UDF(DATE_TO_TRUNC TIMESTAMP_LTZ, DATE_FMT VARCHAR(5))
Copy

参数

DATE_TO_TRUNC TIMESTAMP_LTZ

要截断的 timestamp_ltz 值,该值必须为日期、时间戳或带时区的时间戳。

DATE_FMT VARCHAR

一个 varchar 值,它应该是 trunc 函数支持的日期格式之一。

返回

使用指定格式返回截断的日期。

使用示例

输入:

SELECT TRUNC_UDF(TIMESTAMP '2015-08-18 12:30:00', 'Q')
Copy

输出:

2015-07-01
Copy

INTERVAL_TO_SECONDS_UDF (VARCHAR, VARCHAR)

定义

此用户定义的函数 (UDF) 用于确定时间间隔内的秒数,它也与处理的时间类型相关。这是一个辅助函数。

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

参数

INPUT_PART VARCHAR

第二个参数的相关类型。例如:DAYDAY TO HOURHOURMINUTE

INPUT_VALUE VARCHAR

要转换为秒的值。

返回

返回表示秒数的十进制值类型。

使用示例

输入:

SELECT INTERVAL_TO_SECONDS_UDF('DAY', '1');
Copy

输出:

86400.000000
Copy

DATEDIFF_UDF (DATE, STRING)

定义

此用户定义的函数 (UDF) 用于生成一个时间间隔值与一个日期之间的差。

DATEDIFF_UDF(D DATE, INTERVAL_VALUE STRING)
Copy

参数

D DATE

将用于处理与时间间隔的差值的日期。

INTERVAL_VALUE STRING

将用于创建差值的时间间隔值。

返回

返回一个日期,其中包含时间减法运算的结果。

使用示例

输入:

SELECT DATEDIFF_UDF('2024-01-30', 'INTERVAL ''2-1'' YEAR(2) TO MONTH');
Copy

输出:

2021-12-30
Copy

SECONDS_TO_INTERVAL_UDF (VARCHAR, NUMBER)

定义

此用户定义的函数 (UDF) 用于将秒转换为时间间隔。这是一个辅助函数。

SECONDS_TO_INTERVAL_UDF
(INPUT_PART VARCHAR(30), INPUT_VALUE NUMBER)
Copy

参数

INPUT_PART VARCHAR

第二个参数的相关类型。例如:DAYDAY TO HOURHOURMINUTEMINUTE TO SECOND

INPUT_VALUE VARCHAR

要转换为时间间隔的秒数。

返回

返回

使用示例

输入:

SELECT SECONDS_TO_INTERVAL_UDF('DAY TO SECOND', '86400');
Copy

输出:

1 000:000:000
Copy

DATEADD_UDF (STRING, DATE)

定义

此用户定义的函数 (UDF) 用于将一个日期与一个时间间隔相加。

DATEADD_UDF(INTERVAL_VALUE STRING,D DATE)
Copy

参数

INTERVAL_VALUE STRING

要相加的时间间隔。

D DATE

要与时间间隔相加的日期。

返回

返回一个日期,其中包含时间间隔与日期相加的结果。

使用示例

输入:

SELECT DATEADD_UDF('INTERVAL ''2-1'' YEAR(2) TO MONTH', '2024-01-30');
Copy

输出:

2026-02-28
Copy

DATEDIFF_UDF (STRING, DATE)

定义

此用户定义的函数 (UDF) 用于生成一个时间间隔值与一个日期之间的差。

DATEDIFF_UDF(INTERVAL_VALUE STRING,D DATE)
Copy

参数

INTERVAL_VALUE STRING

将用于创建差值的时间间隔值。

D DATE

将用于处理与时间间隔的差值的日期。

返回

返回一个日期,其中包含时间减法运算的结果。

使用示例

输入:

SELECT DATEDIFF_UDF('INTERVAL ''2-1'' YEAR(2) TO MONTH', '2024-01-30');
Copy

输出:

2021-12-30
Copy

DATEADD_UDF (DATE, STRING)

定义

此用户定义的函数 (UDF) 用于将一个日期与一个时间间隔相加。

DATEADD_UDF(D DATE, INTERVAL_VALUE STRING)
Copy

参数

D DATE

要与时间间隔相加的日期。

INTERVAL_VALUE STRING

要相加的时间间隔。

返回

返回一个日期,其中包含时间间隔与日期相加的结果。

使用示例

输入:

SELECT DATEADD_UDF('2024-01-30', 'INTERVAL ''1-1'' YEAR(2) TO MONTH');
Copy

输出:

2025-02-28
Copy

TO_INTERVAL_UDF (TIME)

定义

此用户定义的函数 (UDF) 用于从当前时间生成一个单独的时间间隔。

TO_INTERVAL_UDF(D2 TIME)
Copy

参数

D2 TIME

要转换为单独时间间隔的输入时间。

返回

返回一个字符串,其中包含与输入时间的间隔的信息。

使用示例

输入:

SELECT TO_INTERVAL_UDF(CURRENT_TIME);
Copy

输出:

INTERVAL '4 HOURS,33 MINUTES,33 SECOND'
Copy

INTERVAL_TO_MONTHS_UDF (VARCHAR)

定义

此用户定义的函数 (UDF) 用于从一个时间间隔中生成一个表示月数的整数。这是一个辅助函数。

INTERVAL_TO_MONTHS_UDF
(INPUT_VALUE VARCHAR())
Copy

参数

INPUT_VALUE VARCHAR

要转换为月的时间间隔值。

返回

返回一个整数,其中包含处理后的月份信息。

使用示例

输入:

SELECT PUBLIC.INTERVAL_TO_MONTHS_UDF('1-6');
Copy

输出:

18
Copy

DATEDIFF_UDF (STRING, TIMESTAMP)

定义

此用户定义的函数 (UDF) 用于从一个时间戳中减去一个时间间隔。

DATEADD_UDF(INTERVAL_VALUE STRING,D TIMESTAMP)
Copy

参数

INTERVAL_VALUE STRING

要减去的时间间隔。

D TIMESTAMP

要从中减去时间间隔的时间戳。

返回

返回一个日期,其中包含时间间隔与时间戳相减的结果。

使用示例

输入:

SELECT PUBLIC.DATEDIFF_UDF('INTERVAL ''1-1'' YEAR(2) TO MONTH', TO_TIMESTAMP('2024-01-31 05:09:09.799 -0800'));
Copy

输出:

2022-12-31 05:09:09.799
Copy

MONTHS_TO_INTERVAL_UDF (VARCHAR, NUMBER)

定义

此用户定义的函数 (UDF) 用于将月值转换为时间间隔。这是一个辅助函数。

MONTHS_TO_INTERVAL_UDF
(INPUT_PART VARCHAR(30), INPUT_VALUE NUMBER)
Copy

参数

INPUT_PART VARCHAR

第二个参数的相关类型。例如:YEAR TO MONTHYEARMONTH

INPUT_VALUE VARCHAR

要转换为时间间隔的月份。

返回

返回一个 varchar,内容为将输入值转换为时间间隔后的结果。

使用示例

输入:

SELECT MONTHS_TO_INTERVAL_UDF('YEAR TO MONTH', 2);
Copy

输出:

2
Copy

DATEDIFF_UDF (TIMESTAMP, STRING)

定义

此用户定义的函数 (UDF) 用于从一个时间间隔中减去一个时间戳。

DATEDIFF_UDF(D TIMESTAMP, INTERVAL_VALUE STRING)
Copy

参数

D TIMESTAMP

将与时间间隔相减的时间戳。

INTERVAL_VALUE STRING

要减去的时间间隔。

返回

返回一个日期,其中包含时间间隔与时间戳相减的结果。

使用示例

输入:

SELECT PUBLIC.DATEDIFF_UDF(TO_TIMESTAMP('2024-01-31 05:09:09.799 -0800'), 'INTERVAL ''1-1'' YEAR(2) TO MONTH');
Copy

输出:

2022-12-31 05:09:09.799
Copy

TRUNC_UDF (NUMBER)

定义

此用户定义的函数 (UDF) 重现了在 指定小数位数时的 Teradata 和 Oracle TRUNC(Numeric) 功能。

TRUNC_UDF(INPUT NUMBER)
Copy

参数

INPUT NUMBER

要截断的数字。

返回

返回一个 int,作为输入数字截断到零小数位的结果。

使用示例

输入:

SELECT TRUNC_UDF(25122.3368)
Copy

输出:

25122
Copy

TRUNC_UDF (NUMBER, NUMBER)

定义

此用户定义的函数 (UDF) 重现了在指定小数位数时的 Teradata 和 Oracle TRUNC(Numeric) 功能。

TRUNC_UDF(INPUT NUMBER, SCALE NUMBER)
Copy

参数

INPUT NUMBER

要截断的数字。

SCALE NUMBER

要截断的小数位数(范围在 -38 到 38 之间)。

返回

返回一个 int,作为输入数字截断到指定小数位数后的结果。

使用示例

输入:

SELECT TRUNC_UDF(25122.3368, -2);
Copy

输出:

25100
Copy

INTERVAL_ADD_UDF (VARCHAR, VARCHAR, VARCHAR, VARCHAR, CHAR, VARCHAR)

定义

此用户定义的函数 (UDF) 用于对特定时间类型的时间间隔进行加减运算。

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

参数

INPUT_VALUE1 VARCHAR

表示一种时间类型的数量。

INPUT_PART1 VARCHAR

INPUT_VALUE1 的时间类型。例如:HOUR

INPUT_VALUE2 VARCHAR

表示一种时间类型的第二个数量。

INPUT_PART2 VARCHAR

INPUT_VALUE2 的时间类型。例如:HOUR

OP CHAR

要执行的运算。可为 '+' 或 '-'。

OUTPUT_PART VARCHAR

运算输出结果的时间类型。

返回

返回一个 varchar,其中包含指定运算结果和值。

使用示例

输入:

SELECT INTERVAL_ADD_UDF('7', 'HOUR', '1', 'HOUR', '+', 'HOUR');
Copy

输出:

8
Copy

DATEADD_UDF (STRING, TIMESTAMP)

定义

此用户定义的函数 (UDF) 用于将一个时间戳与一个时间间隔相加。

DATEADD_UDF(INTERVAL_VALUE STRING,D TIMESTAMP)
Copy

参数

INTERVAL_VALUE STRING

要相加的时间间隔。

D TIMESTAMP

要与时间间隔相加的时间戳。

返回

返回一个日期,其中包含时间间隔与日期相加的结果。

使用示例

输入:

SELECT PUBLIC.DATEADD_UDF('INTERVAL ''1-1'' YEAR(2) TO MONTH', TO_TIMESTAMP('2024-01-31 05:09:09.799 -0800'));
Copy

输出:

2025-02-28 05:09:09.799
Copy

TRUNC_UDF (TIMESTAMP_LTZ)

定义

此用户定义的函数 (UDF) 重现了 指定格式参数时的 Teradata 和 Oracle TRUNC(Date) 功能。

TRUNC_UDF(INPUT TIMESTAMP_LTZ)
Copy

参数

DATE_TO_TRUNC TIMESTAMP_LTZ

要截断的 timestamp_ltz 值,该值必须为日期、时间戳或带时区的时间戳。

返回

返回 DATE_TO_TRUNC 的日期部分。

使用示例

输入:

SELECT TRUNC_UDF(TIMESTAMP '2015-08-18 12:30:00')
Copy

输出:

2015-08-18
Copy

DATEADD_UDF (TIMESTAMP, STRING)

定义

此用户定义的函数 (UDF) 用于将一个时间戳与一个时间间隔相加。

DATEADD_UDF(D TIMESTAMP, INTERVAL_VALUE STRING)
Copy

参数

D TIMESTAMP

要与时间间隔相加的时间戳。

INTERVAL_VALUE STRING

要相加的时间间隔。

返回

返回一个日期,其中包含时间间隔与日期相加的结果。

使用示例

输入:

SELECT PUBLIC.DATEADD_UDF(TO_TIMESTAMP('2024-01-31 05:09:09.799 -0800'), 'INTERVAL ''1-1'' YEAR(2) TO MONTH');
Copy

输出:

2025-02-28 05:09:09.799
Copy

LOG_INFO_UDP (VARCHAR)

定义

This user-defined store procedure (UDP) is used to log messages using the Snowflake SYSTEM$LOG functions.

DATEADD_UDF(D TIMESTAMP, INTERVAL_VALUE STRING)
Copy

参数

MESSAGE VARCHAR

The message to be logged.

返回

A success message indicating the log operation was completed.

使用示例

输入:

CALL PUBLIC.LOG_INFO_UDP('My log message');
Copy

输出:

RESULT

'Message logged successfully'

语言: 中文