簡體   English   中英

Oracle GROUP BY和日期精度

[英]Oracle GROUP BY and date precision

我有一個帶有兩個日期字段的表: BEGIN_DATEEND_DATE

當我減去這兩個字段時,我得到的天數。
我想要這個數字以秒為單位,因為這兩個字段之間的差異非常小(〜1s)。
所以我繼續做:

SELECT ROUND(AVG((END_DATE-BEGIN_DATE)*3600*24),2) AS DELTA,
       TO_CHAR(BEGIN_DATE, 'yyyy-mm-dd hh24:mi:ss') AS DEB, 
       TO_CHAR(END_DATE, 'yyyy-mm-dd hh24:mi:ss') AS FIN
FROM MYTABLE
GROUP BY TO_CHAR(BEGIN_DATE, 'yyyy-mm-dd hh24:mi:ss'), 
         TO_CHAR(END_DATE, 'yyyy-mm-dd hh24:mi:ss');

這是結果(精度與group by minutes相同):
在此處輸入圖片說明


好。
然后,如果我按小時將結果分組:

SELECT ROUND(AVG((END_DATE-BEGIN_DATE)*3600*24),2) AS DELTA,
       TO_CHAR(BEGIN_DATE, 'yyyy-mm-dd hh24') AS DEB, 
       TO_CHAR(END_DATE, 'yyyy-mm-dd hh24') AS FIN
FROM MYTABLE
GROUP BY TO_CHAR(BEGIN_DATE, 'yyyy-mm-dd hh24'), 
         TO_CHAR(END_DATE, 'yyyy-mm-dd hh24');

我有這個結果:
在此處輸入圖片說明

DELTA精度更好,我不明白為什么!
有人可以向我解釋嗎?

我的不好,請不要進一步,問題相對簡單。

浮動結果由SUM(DELTA)/ COUNT(分組行)給出。

所以如果我在2015-11-02有20個值19。
這些值中的9個等於1,其余等於0。
我們得到9/20 = 0.45,這絕對是邏輯。 我剛剛驗證了。

無論如何,謝謝您的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM