08-SEP-20 08:55:05
08-SEP-20 15:36:13
下面的查询对于 15:36:13 可以正常工作,因为它四舍五入到 15:30,但 8:55:05 向下舍入到 08:45,而它应该四舍五入到 09:00
select event_date,trunc(event_date,'mi') - numtodsinterval( mod(to_char(event_date,'mi'),15), 'minute' ) as nearest_quarter
from time_source_in_all where empno = '002307718' and event_date between '8-sep-2020' and '9-sep-2020'
我认为这会做你想要的:
select trunc(event_date, 'HH') + round(extract(minute from event_date) / 15) * interval '15' minute )
. . .
注:我更喜欢extract()
因为它是标准的SQL。但它假设该列是timestamp
而不是一个date
.
或等效的:
select trunc(event_date, 'HH') + numtodsinterval(round(to_number(to_char(event_date, 'MI')) / 15) * 15, 'minute')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)