Oracle: запрос на получение последней пятницы недели, если я дам какую-либо дату - PullRequest
0 голосов
/ 14 марта 2019

Если я назначу дату, скажем, «13 марта 2019», мой запрос должен получить значение «15 марта 2019». Какая последняя пятница недели.

Ответы [ 4 ]

1 голос
/ 14 марта 2019

Перенесите дату на неделю ISO, которая даст вам понедельник недели (поскольку неделя ISO начинается с понедельника).Затем добавьте четыре дня:

select trunc(date '2019-03-13', 'iw') + 4 from dual;
0 голосов
/ 14 марта 2019

Я бы использовал 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;
0 голосов
/ 14 марта 2019
SELECT NEXT_DAY( to_date('2019-03-13', 'yyyy-mm-dd'), to_char(to_date('2019-03-01', 'yyyy-mm-dd'), 'DAY')) FROM dual;

демо

0 голосов
/ 14 марта 2019

Попробуйте ниже -

select trunc(to_date('13-Mar-2019'), 'iw') + 4 from dual
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...