2017-09-25 186 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