我有一个查询,它将时间四舍五入到最近的15分钟窗口:
Select Sysdate,
Trunc (Sysdate) + ( Round ( (Sysdate - Trunc (Sysdate))* 96)/ 96)
FROM dual;
但是,我不想要最近的,而是较低的15分钟窗口。
例如1:
时间19:57:03
以上查询输出20:00:00
所需输出19:45:00
例如2:
时间17:18:00
以上查询输出17:15:00
所需输出17:15:00
第二个例子是正确的,但是第一个例子舍入到20:00
作为它的较近点。
3条答案
按热度按时间mjqavswn1#
你可以使用
Floor
和Ceil
概念。如需参考,请访问Here
8ulbf1ek2#
在
ROUND
函数之后只需要一个FLOOR
函数-Here是小提琴。
svmlkihl3#
接受的答案没有为我给予正确的解决方案,因为舍入的默认精度是0,计算结果舍入为0。
要获得较低的15分钟窗口,需要使用地板,而不是同时使用圆形和地板。
对我有效的代码是