使用 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 - 我不认为这是正确的。 JSdate.now()
返回自 1970 年 1 月 1 日 UTC 以来的毫秒数。 SYSTIMESTAMP
是数据库服务器时区的时间戳,可能与UTC不同。请改用systimestamp at time zone 'UTC'
。
@mathguy - 哦,是的 - 没错。一个不应该忘记的事实......就像我一样;-)谢谢!以上是关于使用 Oracle SQL Query 获得与使用 JS date.now() 方法相同的结果的主要内容,如果未能解决你的问题,请参考以下文章
将PL / SQL块与交互式网格一起使用(Oracle Apex)
使用 'Like' 的 Sql Query 正在给出结果,但使用 '=' 不会在 Oracle 中返回任何结果