【发布时间】:2017-03-21 12:23:04
【问题描述】:
我有一个表,它在 Oracle DB 中有两个带时间戳的字段。我必须在 Days 中计算这两列之间的差异,包括时间戳值。
Ex :- I have both column values as following than
Column1 value = 07-DEC-16 11.05.24.500000000 PM
Column2 value = 08-DEC-16 03.12.06.874000000 AM
天数计算应显示为 1。目前在搜索并阅读了有关 stackoverflow 的许多问题后,我才知道,现在我正在使用以下查询来计算这两列之间的差异
Select Extract( Day From Diff ) Days
From (Select B1.Column2 - B1.Column1 As Diff
From Table1 B1);
此查询导致计算的天数为 0 而不是 1。
我不知道要做什么,请指导。 我需要将其转换为不同的格式吗?还是别的什么?
【问题讨论】:
-
实际上是 0.6713... 天的差异,那么您使用什么逻辑认为这是 1 天的差异?您只是比较
YYYY-MM-DD零件,与 12 月 7 日和 12 月 8 日相差 1 天吗?或者你正在做一些四舍五入?如果是这样,1.001 天的差异会发生什么(这一轮会是 1 天还是 2 天的差异)? -
从您的实际日期差“+00 04:06:42.374000”开始。从这个结果中,您正在提取正确为 0 的天值。您对“天数计算应显示为 1”的要求是什么?时间戳的差异仅超过 4 小时。这怎么变成1天了?如果 4 小时之差在同一天之内怎么办?
-
要求并没有说要精确计算1天,而是说要计算天差,包括时差。