Built-in functions

This section shows equivalents between functions in Oracle and in Snowflake.

Oracle

Snowflake

Notes

ABS

ABS

ACOS

ACOS

ADD_MONTHS

ADD_MONTHS

ANY_VALUE

ANY_VALUE

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

APPROX_COUNT

*to be defined

APPROX_COUNT_DISTINCT

APPROX_COUNT_DISTINCT

APPROX_COUNT_DISTINCT_AGG

*to be defined

APPROX_COUNT_DISTINCT_DETAIL

*to be defined

APPROX_MEDIAN

*to be defined

APPROX_PERCENTILE

APPROX_PERCENTILE

APPROX_PERCENTILE_AGG

*to be defined

APPROX_PERCENTILE_DETAIL

*to be defined

APPROX_RANK

*to be defined

APPROX_SUM

*to be defined

ASCII

ASCII

ASCIISTR

*to be defined

ASIN

ASIN

ATAN

ATAN

ATAN2

ATAN2

AVG

AVG

BFILENAME

*to be defined

BIN_TO_NUM

*to be defined

BITAND

BITAND

BIT_AND_AGG

BITAND_AGG

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

BITMAP_BIT_POSITION

BITMAP_BIT_POSITION

BITMAP_BUCKET_NUMBER

BITMAP_BUCKET_NUMBER

BITMAP_CONSTRUCT_AGG

BITMAP_CONSTRUCT_AGG

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

BITMAP_COUNT

BITMAP_BIT_COUNT

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

BITMAP_OR_AGG

BITMAP_OR_AGG

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

BIT_OR_AGG

BIT_OR_AGG

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

BIT_XOR_AGG

BIT_XOR_AGG

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

CARDINALITY

*to be defined

CAST

CAST

TO_DATE

TO_NUMBER

TO_TIMESTAMP

Not Supported

The function is converted to stub 'CAST_STUB' and outputs an error, when comes with one of the following not supported statement: 'DEFAULT ON CONVERSION ERROR' or 'MULTISET'. Also, it is converted to a stub and outputs an error if the data type is not supported. The function is converted to the 'TO_NUMBER' function when the expression to cast is of type number and outputs an error indicating that the explicit cast is not possible to be done. The function is converted to the 'TO_DATE' function when the expression to cast is of type date and outputs an error indicating that the explicit cast is not possible to be done. The function is converted to the 'TO_TIMESTAMP' function when the expression to cast is of type timestamp and outputs an error indicating that the explicit cast is not possible to be done.

CEIL

CEIL

CHARTOROWID

*to be defined

CHECKSUM

*to be defined

CHR

CHR

USING NCHAR_CS statement is not supported by the Snowflake function equivalent. It is removed and a warning is added.

CLUSTER_DETAILS

*to be defined

CLUSTER_DISTANCE

*to be defined

CLUSTER_ID

*to be defined

CLUSTER_PROBABILITY

*to be defined

CLUSTER_SET

*to be defined

COALESCE

COALESCE

COLLATION

COLLATION

COLLECT

*to be defined

COMPOSE

*to be defined

CON_DBID_TO_ID

*to be defined

CON_GUID_TO_ID

*to be defined

CON_NAME_TO_ID

*to be defined

CON_UID_TO_ID

*to be defined

CONCAT

CONCAT

Every expression parameter will be inside of an NVL(expr, ' ') function to avoid an error in case one of the expressions is null.

CONVERT

*to be defined

CORR

CORR

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

CORR_S

*to be defined

CORR_K

*to be defined

COS

COS

COSH

COSH

COUNT

COUNT

COVAR_POP

COVAR_POP

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

COVAR_SAMP

COVAR_SAMP

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

CUBE_TABLE

Not Supported

Converted to a stub 'CUBE_TABLE_STUB' and an error is added.

CUME_DIST

CUME_DIST

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

CURRENT_DATE

CURRENT_DATE

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP

CV

*to be defined

DATAOBJ_TO_MAT_PARTITION

*to be defined

DATAOBJ_TO_PARTITION

*to be defined

DBTIMEZONE

*to be defined

DECODE

DECODE

DECOMPOSE

*to be defined

DENSE_RANK

DENSE_RANK

There are two kinds of syntax, aggregate syntax, and analytic syntax. The aggregate syntax is not supported and an error is added. The analytic syntax is supported but the 'SIBLINGS' keyword is removed from the 'order by' clause and a warning is added.

DEPTH

*to be defined

DEREF

*to be defined

DUMP

*to be defined

EMPTY_BLOB

*to be defined

EMPTY_CLOB

*to be defined

EXISTSNODE

*to be defined

EXP

EXP

EXTRACT (datetime)

EXTRACT (datetime)

Not supported

Kept as an EXTRACT function but outputs a warning when the function has 'MINUTE' or 'TIMEZONE_MINUTE' as the first keyword parameter. Converted to a stub 'EXTRACT_STUB' and outputs an error when the first keyword parameter is 'TIMEZOME_REGION' or 'TIMEZONE_ABBR'

EXTRACT (XML)

Not Supported

Function related to XML is not supported. It is converted to a stub 'EXTRACT_STUB' and an error is added. Please check the following link about how to handle the loading for XML:

EXTRACTVALUE

Not Supported

Converted to a stub 'EXTRACTVALUE_STUB' and an error is added.

FEATURE_COMPARE

*to be defined

FEATURE_DETAILS

*to be defined

FEATURE_ID

*to be defined

FEATURE_SET

*to be defined

FEATURE_VALUE

*to be defined

FIRST

Not Supported

The statement used to indicate that only the first or last values of the aggregate function will be returned is not supported. Outputs an error.

FIRST_VALUE

FIRST_VALUE

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

FLOOR

FLOOR

FROM_TZ

*to be defined

GREATEST

GREATEST

GROUP_ID

*to be defined

GROUPING

GROUPING

GROUPING_ID

GROUPING_ID

HEXTORAW

*to be defined

INITCAP

INITCAP

INSTR

POSITION

The order of the 'string' parameter and the 'substring' parameter is inverted. Also, the 'occurrence' parameter is removed because it is not supported and a warning is added.

ITERATION_NUMBER

*to be defined

JSON_ARRAY

*to be defined

JSON_ARRAYAGG

*to be defined

JSON

*to be defined

JSON_MERGE_PATCH

*to be defined

JSON_OBJECT

*to be defined

JSON_OBJECTAGG

*to be defined

JSON_QUERY

*to be defined

JSON_SCALAR

*to be defined

JSON_SERIALIZE

*to be defined

JSON_TABLE

Not Supported

Outputs an error: JSON_TABLE IS NOT SUPPORTED.

JSON_TRANSFORM

*to be defined

JSON_VALUE

KURTOSIS_POP

*to be defined

KURTOSIS_SAMP

*to be defined

LAG

LAG

When the value expression comes with the RESPECT | IGNORE NULLS statement, the statement is moved outside the parenthesis in order to match the Snowflake grammar.

LAST

Not Supported

The statement used to indicate that only the first or last values of the aggregate function will be returned is not supported. Outputs an error.

LAST_DAY

LAST_DAY

LAST_VALUE

LAST_VALUE

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

LEAD

LEAD

When the value expression comes with the RESPECT | IGNORE NULLS statement, the statement is moved outside the parenthesis in order to match the Snowflake grammar.

LEAST

LEAST

LENGTH

LENGTH

LISTAGG

LISTAGG

The overflow clause is removed from the function.

LN

LN

LNNVL

*to be defined

LOCALTIMESTAMP

LOCALTIMESTAMP

LOG

LOG

LOWER

LOWER

LPAD

LPAD

LTRIM

LTRIM

MAKE_REF

*to be defined

MAX

MAX

MEDIAN

MEDIAN

MIN

MIN

MOD

MOD

MONTHS_BETWEEN

MONTHS_BETWEEN_UDF

Converted to a user-defined function.

NANVL

*to be defined

NCHR

*to be defined

NEW_TIME

*to be defined

NEXT_DAY

NEXT_DAY

NLS_CHARSET_DESCL_LEN

*to be defined

NLS_CHARSET_ID

*to be defined

NLS_CHARSET_NAME

*to be defined

NLS_COLLATION_ID

*to be defined

NLS_COLLATION_NAME

*to be defined

NLS_INITCAP

*to be defined

NLS_LOWER

*to be defined

NLS_UPPER

*to be defined

NLSSORT

COLLATE

Not Supported

When the function is outside of a 'where' or 'order by' clause, it is not supported and it is converted to stub 'NLSSORT_STUB' and an error is added. Otherwise, if the function is inside a 'where' or 'order by' clause, it is converted to the COLLATE function.

NTH_VALUE

NTH_VALUE

NTILE

NTILE

NULLIF

NULLIF

NUMTODSINTERVAL

Not Supported

While the function itself is not supported, some usages can be migrated manually. For example DATEADD can be used to manually migrate a sum between a Date/Timestamp and this function.

NUMTOYMINTERVAL

Not Supported

While the function itself is not supported, some usages can be migrated manually. For example DATEADD can be used to manually migrate a sum between a Date/Timestamp and this function.

NVL

NVL

NVL2

NVL2

ORA_DM_PARTITION_NAME

*to be defined

ORA_DST_AFFECTED

*to be defined

ORA_DST_CONVERTED

*to be defined

ORA_DST_ERROR

*to be defined

ORA_HASH

Not Supported

Converted to a stub 'ORA_HASH_STUB' and an error is added.

PATH

*to be defined

PERCENT_RANK

PERCENT_RANK

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

PERCENTILE_CONT

PERCENTILE_CONT

PERCENTILE_DISC

PERCENTILE_DISC

POWER

POWER

POWERMULTISET

*to be defined

POWERMULTISET_BY_CARDINALITY

*to be defined

PREDICTION

*to be defined

PREDICTION_BOUNDS

*to be defined

PREDICTION_COST

*to be defined

PREDICTION_DETAILS

*to be defined

PREDICTION_PROBABILITY

*to be defined

PREDICTION_SET

*to be defined

PRESENTNNV

*to be defined

PRESENTV

*to be defined

PREVIOUS

*to be defined

RANK

RANK

There are two kinds of syntax, aggregate syntax, and analytic syntax. The aggregate syntax is not supported and an error is added. The analytic syntax is supported but the 'SIBLINGS' keyword is removed from the 'order by' clause and a warning is added.

RATIO_TO_REPORT

RATIO_TO_REPORT

RAWTOHEX

*to be defined

RAWTONHEX

*to be defined

REF

*to be defined

REFTOHEX

*to be defined

REGEXP_COUNT

REGEXP_COUNT

REGEXP_INSTR

REGEXP_INSTR

REGEXP_REPLACE

REGEXP_REPLACE

In the replace_string parameter (the third one) is being added an extra '\' symbol to escape the other one. In the match_param parameter (last one) the equivalence works like this: 'c' -> 'c' specifies case-sensitive 'i' -> 'i' specifies case-insensitive 'n' -> 's' allows the period(.), which is the match-any-character character, to match the newline character 'm' -> 'm' treats the source string as multiple lines 'x' -> 'e' ignores whitespace characters

REGEXP_SUBSTR

REGEXP_SUBSTR

In the replace_string parameter (the second one) is being added an extra '\' symbol to escape the other one. In the match_param parameter the equivalence works like this: 'c' -> 'c' specifies case-sensitive 'i' -> 'i' specifies case-insensitive 'n' -> 's' allows the period(.), which is the match-any-character character, to match the newline character 'm' -> 'm' treats the source string as multiple lines 'x' -> 'e' ignores whitespace characters

REGR

REGR

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

REMAINDER

*to be defined

REPLACE

REPLACE

REVERSE

REVERSE

ROUND

ROUND

ROUND_TIES_TO_EVEN

*to be defined

ROW_NUMBER

ROW_NUMBER

RPAD

RPAD

ROWIDTOCHAR

*to be defined

ROWIDTONCHAR

*to be defined

RTRIM

RTRIM

SCN_TO_TIMESTAMP

*to be defined

SESSIONTIMEZONE

*to be defined

SET

*to be defined

SIGN

SIGN

SINH

SINH

SKEWNESS_POP

*to be defined

SKEWNESS_SAMP

*to be defined

SOUNDEX

SOUNDEX

SQRT

SQRT

STANDARD_HASH

*to be defined

STATS_BINOMIAL_TEST

*to be defined

STATS_CROSSTAB

*to be defined

STATS_F_TEST

*to be defined

STATS_KS_TEST

*to be defined

STATS_MODE

*to be defined

STATS_MW_TEST

*to be defined

STATS_ONE_WAY_ANOVA

*to be defined

STATS_T_TEST

*to be defined

STATS_WSR_TEST

*to be defined

STDDEV

STDDEV

STDDEV_POP

STDDEV_POP

STDDEV_SAMP

STDDEV_SAMP

SUBSTR

SUBSTR

All the types of SUBSTR (SUBSTRB, SUBSTRC, SUBSTR2, SUBSTR4) are being converted to SUBSTR

SUM

SUM

SYS_CONNECT_BY_PATH

*to be defined

SYS_CONTEXT

CURRENT_USER CURRENT_SCHEMA CURRENT_DATABASE IS_ROLE_IN_SESSION CURRENT_CLIENT CURRENT_SESSION Not supported

Depending on the parameters of the function SYS_CONTEXT, it is converted to one of the specified functions. 'CURRENT_SCHEMA' converted to CURRENT_SCHEMA() 'CURRENT_USER' converted to CURRENT_USER() 'DB_NAME' converted to CURRENT_DATABASE() 'ISDBA' converted to IS_ROLE_IN_SESSION('DBA') 'SERVICE_NAME' converted to CURRENT_CLIENT() 'SESSIONID' converted to CURRENT_SESSION() 'GUEST' converted to IS_ROLE_IN_SESSION('GUEST') 'SESSION_USER' converted to CURRENT_USER() 'AUTHENTICATED_IDENTITY' converted to CURENT_USER()

When a parameter is not supported it is converted to stub 'SYS_CONTEXT_STUB'

SYS_DBURIGEN

*to be defined

SYS_EXTRACT_UTC

*to be defined

SYS_GUID

*to be defined

SYS_OP_ZONE_ID

*to be defined

SYS_TYPEID

*to be defined

SYS_XMLAGG

*to be defined

SYS_XMLGEN

*to be defined

TAN

TAN

TANH

TANH

TIMESTAMP_TO_SCN

*to be defined

TO_APPROX_COUNT_DISTINCT

*to be defined

TO_APPROX_PERCENTILE

*to be defined

TO_BINARY_DOUBLE

*to be defined

TO_BINARY_FLOAT

*to be defined

TO_BLOB (bfile)

*to be defined

TO_BLOB (raw)

*to be defined

TO_CHAR (character)

TO_CHAR

TO_CHAR (datetime)

TO_CHAR(datetime) Conditional Expression(CASE) Not Supported

Depending on the format parameter, the function is converted to conditional expression (CASE WHEN) or a user-defined function or kept as TO_CHAR(datetime). Sometimes the function will be between another function to get an equivalent result. When the function is not supported it is converted to stub 'TO_CHAR_STUB'. Go to To_Char(datetime) to get more information about this function.

TO_CHAR (number)

TO_CHAR (number)

If the numeric parameter is of type double or float the function is commented out and an error is added. When comes a format not supported, the format parameter is removed from the function and an error is added. Not supported formats: C L PR RN TM U V. If the function has the nlsparam parameter, it is removed from the function and an error is added.

TO_CLOB ( bfile | blob )

TO_VARCHAR

Outputs a warning to indicate the bfile/blob parameters are considered binary. Also outputs an error when the function has more than one parameter.

TO_CLOB (character)

TO_VARCHAR

Outputs a warning to indicate the bfile/blob parameters are considered binary. Also outputs an error when the function has more than one parameter.

TO_DATE

TO_DATE

When comes a format not supported, the function is commented out and an error is added. Not supported formats: FXFMDD-MON-YYYY J DDD MONTH RM DD-MON-RR DD-MON-RRRR SSSSS YYYY YYY Y

TO_DSINTERVAL

*to be defined

TO_LOB

*to be defined

TO_MULTI_BYTE

*to be defined

TO_NCHAR

*to be defined

TO_NCHAR (datetime)

*to be defined

TO_NCLOB

*to be defined

TO_NUMBER

TO_NUMBER

Not Supported

The 'DEFAULT integer ON CONVERSION ERROR' statement is removed and outputs an error,

Converted to a stub TO_NUMBER_STUB and an error is added when the 'format' parameter is not supported and also when the function has the 'nlsparam' parameter.

TO_SINGLE_BYTE

*to be defined

TO_TIMESTAMP

TO_DATE

When comes a format not supported, the function is commented out and an error is added. Not supported formats: FXFMDD-MON-YYYY J DDD MONTH RM DD-MON-RR DD-MON-RRRR SSSSS YYYY YYY Y

TO_TIMESTAMP_TZ

TO_DATE

When comes a format not supported, the function is commented out and an error is added. Not supported formats: FXFMDD-MON-YYYY J DDD MONTH RM DD-MON-RR DD-MON-RRRR SSSSS YYYY YYY Y

TO_UTC_TIMESTAMP_TZ

*to be defined

TO_YMINTERVAL

*to be defined

TRANSLATE

TRANSLATE

TRANSLATE_USING

TRANSLATE_USING

TREAT

*to be defined

TRIM

TRIM

LTRIM

RTRIM

Depending on the first parameter it will be converted to: LEADING keyword -> LTRIM TRAILING keyword -> RTRIM BOTH keyword -> TRIM None of these keywords -> keep as TRIM function. Also, the order of the 'trimsource' parameter and the 'trimcharacter' parameter is inverted, and the FROM keyword is removed from the function.

TRUNC (date)

TRUNC(date)

'DAY' expression is added as a second parameter of the function.

TRUNC (number)

TRUNC(number)

TZ_OFFSET

*to be defined

UID

*to be defined

UNISTR

TO_VARCHAR(expr)

In the expr parameter is being added the 'u' letter after every '\' symbol.

UPPER

UPPER

USER

*to be defined

USERNV

*to be defined

VALIDATE_CONVERSION

*to be defined

VALUE

Not Supported

Converted to a stub 'VALUE_STUB' and an error is added.

VAR_POP

VAR_POP

VAR_SAMP

VAR_SAMP

VARIANCE

VARIANCE

A warning is being added to indicate the Snowflake counterpart may not be functionally equivalent.

VSIZE

*to be defined

WIDTH_BUCKET

WIDTH_BUCKET

XMLAGG

*to be defined

XMLCAST

*to be defined

XMLCDATA

*to be defined

XMLCOLATVAL

*to be defined

XMLCOMMENT

*to be defined

XMLCONCAT

*to be defined

XMLDIFF

*to be defined

XMLELEMENT

*to be defined

XMLEXISTS

*to be defined

XMLFOREST

*to be defined

XMLISVALID

*to be defined

XMLPARSE

*to be defined

XMLPATCH

*to be defined

XMLPI

*to be defined

XMLQUERY

Not Supported

XMLSEQUENCE

Not Supported

Converted to a stub 'XMLSEQUENCE_STUB' and an error is added.

XMLSERIALIZE

*to be defined

XMLTABLE

Not Supported

Outputs an error: XMLTABLE IS NOT SUPPORTED.

XMLTRANSFORM

*to be defined

Functions Details.

To_Char(datetime)

According to the format parameter, the function will be converted to:

Format

Conversion

AD or BC

A.D. or B.C.

The function will be converted to a conditional expression (CASE) where the format is added as a result of the 'when' condition. For Example: from: To_Char(DATE '1998-12-25', 'AD') to: CASE WHEN YEAR(DATE '1998-12-25') < 0 THEN'BC'

CC or SCC

The function will be converted to a conditional expression where the original function body is added as a when condition but it will be between

a MOD function, after that the original function is added as a then result but contained by a SUBSTR function. For example:

from: To_Char(DATE '1998-12-25','CC') to: CASE WHEN MOD(YEAR(DATE '1998-12-25'), 100) = 0 THEN SUBSTR(TO_CHAR(DATE '1998-12-25', 'YYYY'), 1, 2)

D

The function will be converted to the snowflake function equivalent but the function body will be between the DAYOFWEEK datetime part.

For Example:

from: To_Char(DATE '1998-12-25','D')

to: TO_CHAR(DAYOFWEEK(DATE '1998-12-25') + 1)

DAY

The function will be converted to a user-defined function inside of an UPPER function. For Example: from: To_Char(DATE '1998-12-25','DAY')

to: UPPER(SNOWCONVERT.PUBLIC.FULL_DAY_NAME_UDF(DATE '1998-12-25'))

DDD

The function will be converted to the snowflake function equivalent but the function body will be between the DAYOFYEAR datetime part.

For Example: from: To_Char(DATE '1998-12-25','DDD')

to: TO_CHAR(DAYOFYEAR(DATE '1998-12-25'))

DD-MON-RR

The function will be converted to the snowflake function equivalent keeping the

function body but changing the format to: 'DD-MON-YY'.

For Example:

from: To_Char(TIMESTAMP '1998-12-25 09:26:50.12','DD-MON-RR')

to: To_Char(TIMESTAMP '1998-12-25 09:26:50.12','DD-MON-YY')

DL

The function will be converted to a user-defined function plus the 'OR' operator plus snowflake equivalent keeping the function body but changing the format

to: ', MMM DD, YYYY

For example:

from: To_Char(DATE '1998-12-25','DL')

to: SNOWCONVERT.PUBLIC.FULL_DAY_NAME_UDF(DATE '1998-12-25') || TO_CHAR(DATE '1998-12-25',', MMMM DD, YYYY')

DS

The function will be converted to a combination of the snowflake function

equivalent inside of the LTRIM function and the snowflake function equivalent.

All the parts combined with the 'OR' operator.

For Example:

from: To_Char(DATE '1998-12-25','DS')

to: LTRIM(TO_CHAR(DATE '1998-12-25', 'MM'), '0') || '/' || LTRIM(TO_CHAR(DATE '1998-12-25', 'DD'), '0') || '/' || TO_CHAR(DATE '1998-12-25', 'YYYY')

DY

The function will be converted to the snowflake function equivalent

inside of the UPPER function.

For example: from: To_Char(DATE '1998-12-25','DY') to: UPPER(TO_CHAR(DATE '1998-12-25', 'DY'))

I

The function will be converted to into the snowflake function equivalent

inside of the SUBSTR function.

For Example:

from: To_Char(DATE '1998-12-25','I')

to: SUBSTR(TO_CHAR(DATE '1998-12-25', 'YYYY'), 4, 1)

IW

The function will be converted to the snowflake function equivalent but the function body will be between the WEEKISO datetime part.

For Example:

from:To_Char(DATE '1998-12-25','IW')

to: TO_CHAR(WEEKISO(DATE '1998-12-25'))

IY

The function will be converted to the snowflake function equivalent keeping the

function body but changing the format to: 'YY'.

For example:

from:To_Char(DATE '1998-12-25', 'IY')

to: TO_CHAR(DATE '1998-12-25', 'YY')

IYY

The function will be converted to the snowflake function equivalent

inside of the SUBSTR function and change the format to: 'YYYY'.

For Example:

from: To_Char(DATE '1998-12-25','IYY')

to: SUBSTR(TO_CHAR(DATE '1998-12-25', 'YYYY'), 2, 3)

IYYY

The function will be converted to the snowflake function equivalent keeping the

function body but changing the format to: 'YYYY'.

For example:

from:To_Char(DATE '1998-12-25', 'IYYY')

to: TO_CHAR(DATE '1998-12-25', 'YYYY')

J

The function will be converted to a conditional expression with 'B.C.' as a 'then'

result and 'A.D.' as an else result.

For example:

from: To_Char(DATE '1998-12-25','J')

to: DATE_TO_JULIANDAYS_UDF(DATE '1998-12-25')

MI

The function will be converted to the snowflake equivalent. If the function

argument is SYSDATE it will be changed to CURRENT_TIMESTAMP, otherwise,

if it is of type date, the function will return null.

For Example:

from: To_Char(SYSDATE,'MI');

to: To_Char(CURRENT_TIMESTAMP,'MI')

MON

The function will be converted to the snowflake function equivalent inside of the UPPER function.

For Example:

from: To_Char(DATE '1998-12-25','MON')

to: UPPER(TO_CHAR(DATE '1998-12-25', 'MON'))

MONTH

The function will be converted to the snowflake function equivalent

inside of the UPPER function and change the format to: 'MMMM'.

For Example:

from: To_Char(DATE '1998-12-25','MONTH')

to: UPPER(TO_CHAR(DATE '1998-12-25', 'MMMM'))

Q

The function will be converted to the snowflake function equivalent inside of the QUARTER function.

For Example:

from: To_Char(DATE '1998-12-25','Q')

to: TO_CHAR(QUARTER(DATE '1998-12-25'))

RM

The function will be converted to a user-defined function.

For Example:

from: To_Char(DATE '1998-12-25','RM')

to: SNOWCONVERT.PUBLIC.ROMAN_MONTH_UDF(DATE '1998-12-25')

RR

The function will be converted to the snowflake function equivalent keeping the

function body but changing the format to: 'YY'.

For Example:

from: To_Char(DATE '1998-12-25','RR')

to: TO_CHAR(DATE '1998-12-25', 'YY')

RR-MON-DD

The function will be converted to the snowflake function equivalent keeping the

function body but changing the format to: 'YY-MON-DD'.

For Example:

from: To_Char(TIMESTAMP '1998-12-25 09:26:50.12','RR-MON-DD')

to: To_Char(TIMESTAMP '1998-12-25 09:26:50.12','YY-MON-DD')

RRRR

The function will be converted to the snowflake function equivalent keeping the

function body but changing the format to: 'YYYY'.

For Example:

from: To_Char(DATE '1998-12-25','RRRR')

to: TO_CHAR(DATE '1998-12-25', 'YYYY')

SS

The function will be converted to a combination of a conditional expression and the snowflake function equivalent.

All the parts combined with the 'OR' operator. For Example: from: To_Char(TIMESTAMP '1998-12-25 09:26:50.12','SS')

to: CASE WHEN SECOND(TIMESTAMP '1998-12-25 09:26:50.12') = 0 THEN '00' WHEN SECOND(TIMESTAMP '1998-12-25 09:26:50.12') < 10 THEN '0' || TO_CHAR(SECOND(TIMESTAMP '1998-12-25 09:26:50.12')) ELSE TO_CHAR(SECOND(TIMESTAMP '1998-12-25 09:26:50.12')) END

SSSS

The function will be converted to the snowflake function equivalent but the

function body will be a concatenation of SECOND, MINUTE, and HOUR datetime parts.

For Example:

from: To_Char(TIMESTAMP '1998-12-25 09:26:50.12','SSSS')

to: TO_CHAR(SECOND(TIMESTAMP '1998-12-25 09:26:50.12') + MINUTE(TIMESTAMP '1998-12-25 09:26:50.12') * 60 + HOUR(TIMESTAMP '1998-12-25 09:26:50.12') * 3600)

TS

The function will be converted to the snowflake function equivalent keeping the

function body but changing the format to: 'HH:MI:SS PM'.

For Example:

from: To_Char(TIMESTAMP '1998-12-25 09:26:50.12','TS')

to: TO_CHAR(TIMESTAMP '1998-12-25 09:26:50.12', 'HH:MI:SS PM')

W

The function will be converted to the TRUNC function with the DAYOFMONTH datetime part.

For Example:

from: To_Char(DATE '1998-12-25','W')

to: TRUNC(DAYOFMONTH(DATE '1998-12-25') / 7 + 1)

WW

The function will be converted to the TRUNC function with the DAYOFYEAR datetime part.

For Example:

from: To_Char(DATE '1998-12-25','WW')

to: TRUNC(DAYOFYEAR(DATE '1998-12-25') / 7 + 1)

Y

YYY

The function will be converted to the snowflake function equivalent

inside of the SUBSTR function and change the format to: 'YYYY'.

For Example:

from: To_Char(DATE '1998-12-25','Y')

to: SUBSTR(TO_CHAR(DATE '1998-12-25', 'YYYY'), 4, 1)

Y,YYY

The function will be converted to a combination of the snowflake function equivalent inside of the SUBSTR function and a comma symbol. All the parts combined with the 'OR' operator.

For Example:

from: To_Char(DATE '1998-12-25','Y,YYY')

to: SUBSTR(TO_CHAR(YEAR(DATE '1998-12-25')), 1, 1) || ',' || SUBSTR(TO_CHAR(YEAR(DATE '1998-12-25')), 2, 3)

YEAR

SYEAR

The function will be converted to a user-defined function inside of an UPPER function.

For Example:

from: To_Char(DATE '1998-12-25','YEAR')

to: UPPER(SNOWCONVERT.PUBLIC.YEAR_NAME_UDF(DATE '1998-12-25'))

Last updated