6

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

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

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

4

2 回答 2

16

没有内置函数。但是写一个相对容易。因为 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
于 2012-05-11T15:40:02.643 回答
0

我最后用了这个...

date=unixtimestamp number

to_date(\'1970-01-01\',\'YYYY-MM-DD\') + numtodsinterval('.$_GET["date"].',\'SECOND\')
于 2017-12-05T23:15:09.003 回答