diff --git a/scripts-available/CDB_DateToNumber.sql b/scripts-available/CDB_DateToNumber.sql index 1b9a449..651d429 100644 --- a/scripts-available/CDB_DateToNumber.sql +++ b/scripts-available/CDB_DateToNumber.sql @@ -13,3 +13,19 @@ RETURN output; END; $$ LANGUAGE 'plpgsql' STABLE STRICT; + +-- Convert timestamp with time zone to double precision +-- +CREATE OR REPLACE FUNCTION CDB_DateToNumber(input timestamp with time zone) +RETURNS double precision AS $$ +DECLARE output double precision; +BEGIN + BEGIN + SELECT extract (EPOCH FROM input) INTO output; + EXCEPTION WHEN OTHERS THEN + RETURN NULL; + END; +RETURN output; +END; +$$ +LANGUAGE 'plpgsql' STABLE STRICT; diff --git a/test/CDB_DateToNumberTest.sql b/test/CDB_DateToNumberTest.sql new file mode 100644 index 0000000..0c1051c --- /dev/null +++ b/test/CDB_DateToNumberTest.sql @@ -0,0 +1,2 @@ +SELECT * FROM CDB_DateToNumber('1999-01-08 00:00:00'::timestamp); +SELECT * FROM CDB_DateToNumber('1999-01-08 00:00:00+05'::timestamp with time zone); diff --git a/test/CDB_DateToNumberTest_expect b/test/CDB_DateToNumberTest_expect new file mode 100644 index 0000000..bd3d3b0 --- /dev/null +++ b/test/CDB_DateToNumberTest_expect @@ -0,0 +1,2 @@ +915753600 +915735600