2017-09-25 190 views
0

我们有一个包含Pages最后发布日期的表。但字段类型是数字,Page的LastPublished日期存储为UnixTimeStamp(13位数字)。 我想生成包含昨天发布的项目的报告(每天超过20页将获得发布)。Oracle SQL查询将Unix时间戳转换为Java的日期

如果该字段是日期,那么我可以查询,但它的数字格式。所以,请帮助我生成报告。

样品表:

ID    Approved  Path    PublishedDate 
---------------------------------------------------------------- 
206b50140aSTFL approved  /LocaleFlags/Small 1502866591000 
dc563a2db23RD approved  /LocaleFlags/Small 1442230611000 
+0

Java与这个问题有什么关系? – MT0

回答

0

假设你的时间戳是以毫秒为单位(因为你说的UNIX时间戳是13位),然后除以1000得到,因为时代的秒数,您可以使用NUMTODSINTERVAL更改为间隔,并将其添加到时代TIMESTAMP '1970-01-01 00:00:00'

SELECT TIMESTAMP '1970-01-01 00:00:00' + NUMTODSINTERVAL(PublishedDate/1000, 'SECOND') 
FROM your_table 

不过,如果你只是想找到昨天的网页,然后convert that date to a unix timestamp

SELECT * 
FROM your_table 
WHERE PublishedDate BETWEEN (TRUNC(SYSDATE) - 1 - DATE '1970-01-01') * 24*60*60*1000 
         AND (TRUNC(SYSDATE) - DATE '1970-01-01') * 24*60*60*1000 - 1