使用 Oracle SQL Query 获得与使用 JS date.now() 方法相同的结果

Posted

技术标签:

【中文标题】使用 Oracle SQL Query 获得与使用 JS date.now() 方法相同的结果【英文标题】:Get same result with Oracle SQL Query as with JS date.now() method 【发布时间】:2021-08-16 12:32:53 【问题描述】:

在通过 SQL select 语句在 JS 中使用 date.now() 方法(返回自 1970-01-01 以来经过的毫秒数)时,有没有一种快速的方法来获得完全相同的结果?

我想这可能是开始:

select current_timestamp from dual;

...但从那时起,我就一直无法获得上述格式。

【问题讨论】:

这能回答你的问题吗? How to get millis of timestamp since 1970 UTC in Oracle SQL? 【参考方案1】:

那就是

SQL> SELECT     (CAST (SYSTIMESTAMP AS DATE) - DATE '1970-01-01')
  2           * 24
  3           * 60
  4           * 60
  5           * 1000
  6         + MOD (EXTRACT (SECOND FROM SYSTIMESTAMP), 1) * 1000 result
  7    FROM DUAL;

          RESULT
----------------
   1629124489718

SQL>

【讨论】:

@PhilGee - 我不认为这是正确的。 JS date.now() 返回自 1970 年 1 月 1 日 UTC 以来的毫秒数。 SYSTIMESTAMP是数据库服务器时区的时间戳,可能与UTC不同。请改用systimestamp at time zone 'UTC' @mathguy - 哦,是的 - 没错。一个不应该忘记的事实......就像我一样;-)谢谢!

以上是关于使用 Oracle SQL Query 获得与使用 JS date.now() 方法相同的结果的主要内容,如果未能解决你的问题,请参考以下文章

将PL / SQL块与交互式网格一起使用(Oracle Apex)

#SQL #QUERY #ROWNUM #ORACLE

使用 'Like' 的 Sql Query 正在给出结果,但使用 '=' 不会在 Oracle 中返回任何结果

Oracle Sql Query 需要一天的时间才能使用 dblink 返回结果

使用 Oracle Query 显示所有匹配的记录

在 Oracle 中使用 query() 方法删除 Spring JdbcTemplate