首页 > 解决方案 > 将编号添加到在 oracle 中提交的日期

问题描述

我正在尝试将秒数添加到现有日期以查找结束时间。我有一个领域的开始时间和一个领域的总持续时间,我在互联网上发现我们可以添加数字到日期,但我们应该在 86400 上潜水

(chargestarttime + (NVL (callduration, 0) / 86400))
// where chargestarttime is date , callduration is number 
// sample (chargestarttime  is 2020-05-30 02:21:58 and callduration is 65 the output is 2020-05-30 02:23:03) 

我的问题是为什么我们需要 div 86400?如果我将日期转换为 UNIX_TIMESTAMP,然后仅添加 65,它将在 86400(24 小时)上不使用 div 给出相同的结果,或者我们有理由在 86400(24 小时)上进行 div

标签: sqloracledatetimedate-arithmetic

解决方案


为什么我们需要在 86400 上进行 div 操作?

在日期算术中,Oracle1用来表示 1 天。如果你从几秒开始,你需要把它转换成天,所以

 chargestarttime + NVL(callduration, 0) / 60 / 60 / 24
               -- seconds per minutes-----^
                      -- minutes per hour -----^
                              -- hours per day -----^

86400只是一天中的秒数。


推荐阅读