Я бы использовал next_day()
. Это функция Oracle, специально разработанная для этой цели.
select next_day(date '2019-03-13', 'Fri')
from dual;
Единственный нюанс: если дата пятница , то она вернется в следующую пятницу. Это может быть то, что вы хотите. В противном случае просто вычтите один день:
select next_day(date '2019-03-13' - 1, 'Fri') as friday_end_of_week
from dual;