DATEADD
不Oracle中存在。有多种方法处理日期,但这是相当简单:
select date '1970-01-01' + (to_number('1361439468476')/(1000*60*60*24))
from dual;
DATE'1970
---------
21-FEB-13
...这实际上是21/02/2013 09:37:48
,所以不知道为什么你把它作为20-FEB-13
。
如果你想保持精确到毫秒,你可以使用一个TIMESTAMP
代替:
select timestamp '1970-01-01 00:00:00'
+ numtodsinterval(to_number('1361439468476')/1000, 'SECOND')
from dual;
TIMESTAMP'1970-01-0100:00:00'+NUMTODSINTERVAL(TO_NUMBER('1361439468476')/10
---------------------------------------------------------------------------
21-FEB-13 09.37.48.476000000
我不知道在您的查询的107
做虽然,或转换,或许他们正在格式化结果作为一个字符串?
好的,我看到what convert(..., 107)
is doing;可等效为:
select to_char(date '1970-01-01'
+ (to_number('1361439468476')/(1000*60*60*24)), 'Mon DD, YYYY') as dt
from dual;
DT
------------
Feb 21, 2013
...使用to_char()
与Mon DD, YYYY
format model。
作品非常棒!非常感谢! :) – Rogbi 2013-02-22 10:41:23