Найти неделю по дате, переданной в качестве ввода oracle - PullRequest
0 голосов
/ 07 января 2020

БД: Oracle Версия: 12 c

Я должен найти номер недели на текущую дату на основе / из введенной даты. Скажем, моя дата ввода 03 / ноябрь / 2019, запрос должен возвращать номер недели как 10.

, поскольку между сегодняшней датой (01 / январь / 2020) и датой ввода (03 / ноябрь / 10) существует 10 недель. 2019).

Ответы [ 2 ]

5 голосов
/ 07 января 2020

Как насчет разницы в днях и деления на 7?

select floor((sysdate - date '2019-11-03') / 7) + 1
0 голосов
/ 07 января 2020

Используйте маску даты при преобразовании в символ:

select to_char(sysdate, 'WW') from dual;

Затем вы можете добавить или вычесть следующий пример:

select to_char(to_date('2019-11-03', 'YYYY-MM-DD'), 'WW'), to_char(sysdate, 'WW'),
case 
  when to_char(to_date('2019-11-03', 'YYYY-MM-DD'), 'WW') > to_char(sysdate, 'WW') then
    (52 - to_char(to_date('2019-11-03', 'YYYY-MM-DD'), 'WW')) + to_char(sysdate, 'WW')
  else to_char(sysdate, 'WW') - to_char(to_date('2019-11-03', 'YYYY-MM-DD'), 'WW')
end case
from dual;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...