DATEADD UDF
Description
This UDF is used as a template for all cases when there is an addition between a DATE or TIMESTAMP type and FLOAT type.
Custom UDF overloads
DATEADD_UDF(date, float)
Parameters
FIRST_PARAM: The first
DATEof the operation.SECOND_PARAM: The
FLOATto be added.
CREATE OR REPLACE FUNCTION PUBLIC.DATE_ADD_UDF(FIRST_PARAM DATE, SECOND_PARAM FLOAT)
RETURNS DATE
LANGUAGE SQL
IMMUTABLE
AS
$$
SELECT FIRST_PARAM + SECOND_PARAM::NUMBER
$$;DATEADD_UDF(float, date)
Parameters
FIRST_PARAM: The
FLOATto be added.SECOND_PARAM: The
DATEof the operation.
CREATE OR REPLACE FUNCTION PUBLIC.DATE_ADD_UDF(FIRST_PARAM FLOAT, SECOND_PARAM DATE)
RETURNS DATE
LANGUAGE SQL
IMMUTABLE
AS
$$
SELECT FIRST_PARAM::NUMBER + SECOND_PARAM
$$;DATEADD_UDF(timestamp, float)
Parameters
FIRST_PARAM: The first
TIMESTAMPof the operation.SECOND_PARAM: The
FLOATto be added.
CREATE OR REPLACE FUNCTION PUBLIC.DATE_ADD_UDF(FIRST_PARAM FLOAT, SECOND_PARAM TIMESTAMP)
RETURNS TIMESTAMP
LANGUAGE SQL
IMMUTABLE
AS
$$
SELECT DATEADD(day, FIRST_PARAM,SECOND_PARAM)
$$;DATEADD_UDF(float, timestamp)
Parameters
FIRST_PARAM: The
FLOATof the operation.SECOND_PARAM: The
TIMESTAMPof the operation.
CREATE OR REPLACE FUNCTION PUBLIC.DATE_ADD_UDF(FIRST_PARAM FLOAT, SECOND_PARAM TIMESTAMP)
RETURNS TIMESTAMP
LANGUAGE SQL
IMMUTABLE
AS
$$
SELECT DATEADD(day, FIRST_PARAM,SECOND_PARAM)
$$;Usage example
Oracle
SELECT
TO_TIMESTAMP('03/08/2009, 12:47 AM', 'dd/mm/yy, hh:mi AM')+62.40750856543442
From DUAL; |TO_TIMESTAMP('03/08/2009,12:47AM','DD/MM/YY,HH:MIAM')+62.40750856543442|
|-----------------------------------------------------------------------|
|2009-10-04 10:33:49.000 |
Snowflake
SELECT
--** MSC-WARNING - MSCEWI1020 - CUSTOM UDF 'DATE_ADD_UDF' INSERTED. **
PUBLIC.DATE_ADD_UDF(
TO_TIMESTAMP('03/08/2009, 12:47 AM', 'dd/mm/yy, hh:mi AM'), 62.40750856543442)
From DUAL;|PUBLIC.DATEADD_UDF(
TO_TIMESTAMP('03/08/2009, 12:47 AM', 'DD/MM/YY, HH12:MI AM'), 62.40750856543442)|
|-----------------------------------------------------------------------------------------------------|
|2009-10-04 00:47:00.000 |
Known Issues
1. Differences in time precision
When there are operations between Dates or Timestamps and Floats, the time may differ from Oracle's. There is an action item to fix this issue.
Related EWIs
MSCEWI1020: CUSTOM UDF INSERTED.
Last updated
Was this helpful?