Convert Unixtime to Datetime SQL (Oracle)
I have a datetime field(P_DT) and I would like to return all results where P_DT is greater then an input unix timestamp.
Does Oracle have any built in functions that can help?
In my searchs I find resuts for DateTime to Unix but no Unix to DateTime...
There are no built-in functions. But it's relatively easy to write one. Since a Unix timestamp is the number of seconds since January 1, 1970
CREATE OR REPLACE FUNCTION unix_ts_to_date( p_unix_ts IN NUMBER )
RETURN DATE
IS
l_date DATE;
BEGIN
l_date := date '1970-01-01' + p_unix_ts/60/60/24;
RETURN l_date;
END;
which you can see being called
SQL> select unix_ts_to_date( 1336822620 ) from dual;
UNIX_TS_TO_DATE(133
-------------------
2012-05-12 11:37:00