gpt4 book ai didi

sql - Oracle中以毫秒为单位的时间戳之间的差异

转载 作者:行者123 更新时间:2023-12-04 16:18:40 26 4
gpt4 key购买 nike

我有表 test1 并且有一个带有时间戳数据类型的列 DOJ,其记录很少,如下所示。
这里我需要 doj 和 systimestamp 之间的毫秒差异。

SELECT DOJ FROM TEST1; 
DOJ
----------------------------
21-MAR-14 09.25.34.514526000
21-MAR-14 09.25.34.520345000
22-MAR-14 09.25.34.523144000
22-MAR-14 09.25.34.527770000
23-MAR-14 09.25.34.532482000
23-MAR-14 09.25.34.535603000
24-MAR-14 09.25.34.538556000
24-MAR-14 09.25.34.541729000

SELECT SYSTIMESTAMP FROM DUAL;
SYSTIMESTAMP
--------------
24-MAR-14 09.48.10.251556000 +00:00

有人可以帮我解决这个问题吗?

最佳答案

稍微扩展 René 的答案,如果您想要总毫秒数,那么您需要从通过从另一个时间戳中减去一个时间戳产生的间隔中提取和组合所有元素:

select doj, systimestamp - doj,
trunc(1000 * (extract(second from systimestamp - doj)
+ 60 * (extract(minute from systimestamp - doj)
+ 60 * (extract(hour from systimestamp - doj)
+ 24 * (extract(day from systimestamp - doj) ))))) as milliseconds
from test1;

DOJ SYSTIMESTAMP-DOJ MILLISECONDS
---------------------------- ---------------- ----------------
21-MAR-14 09.25.34.514526000 3 2:9:8.785713 266948785
21-MAR-14 09.25.34.520345000 3 2:9:8.779894 266948779
22-MAR-14 09.25.34.523144000 2 2:9:8.777095 180548777
22-MAR-14 09.25.34.527770000 2 2:9:8.772469 180548772
23-MAR-14 09.25.34.532482000 1 2:9:8.767757 94148767
23-MAR-14 09.25.34.535603000 1 2:9:8.764636 94148764
24-MAR-14 09.25.34.538556000 0 2:9:8.761683 7748761
24-MAR-14 09.25.34.541729000 0 2:9:8.75851 7748758

SQL Fiddle ,包括用于比较的 Unix 纪元日期,但您需要针对您的服务器时区调整该日期。

关于sql - Oracle中以毫秒为单位的时间戳之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22606161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com