将Unix时间转换为日期时间SQL(Oracle)

时间:2012-05-11 15:32:45

标签: sql oracle unix-timestamp

我有一个日期时间字段(P_DT),我想返回所有结果,其中P_DT大于输入unix时间戳。

Oracle是否有任何可以提供帮助的内置函数?

在我的搜索中,我找到了DateTime到Unix的resuts但没有Unix到DateTime ...

2 个答案:

答案 0 :(得分:13)

没有内置功能。但写一个相对容易。由于Unix时间戳是自1970年1月1日以来的秒数

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;

你可以看到被称为

SQL> select unix_ts_to_date( 1336822620 ) from dual;

UNIX_TS_TO_DATE(133
-------------------
2012-05-12 11:37:00

答案 1 :(得分:0)

我最后用过这个......

date=unixtimestamp number

to_date(\'1970-01-01\',\'YYYY-MM-DD\') + numtodsinterval('.$_GET["date"].',\'SECOND\')