【问题标题】:Oracle SQL Query to Convert Unix Timestamp to date for JavaOracle SQL 查询将 Unix 时间戳转换为 Java 的日期
【发布时间】:2017-09-25 20:51:35
【问题描述】:

我们有一个表格,其中包含页面的最后发布日期。但字段类型是数字,Page 的 LastPublished 日期存储为 UnixTimeStamp(13 位数字)。 我想生成包含最后一天发布项目的报告(每天都会发布超过 20 页)。

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

样本表:

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

【问题讨论】:

  • 这个问题跟Java有什么关系?

标签: java oracle


【解决方案1】:

假设您的时间戳以毫秒为单位(因为您说 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

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 1970-01-01
    • 2014-08-21
    • 2020-10-19
    • 2020-12-23
    • 2016-04-24
    • 2012-07-04
    • 1970-01-01
    相关资源
    最近更新 更多