Normally over the years and all over the place you will see code like
trunc(sysdate) between xxxx.effective_start_date and xxxx.effective_end_date
Without the 'trunc' I think the code effectively creates a 1 day 'black hole' where the details will not be found due to the time portion of the date being used