我有一个带有两个日期字段的表:BEGIN_DATE
和END_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');
好吧。
然后,如果我按小时或天将结果分组:
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个值
。这些值中有9个等于1,其余等于0。
我们有9/20 = 0.45,这绝对是逻辑。我刚刚验证了。
无论如何,谢谢您的时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句