У меня такой запрос:
SELECT forecastDate, to_char(to_date(forecastDate),'WW') AS WEEK_NUMBER
FROM ACT_FORECAST
Что дает мне такой результат:
forecastDate | WEEK_NUMBER
14/07/2017 28
15/07/2017 28
16/07/2017 29
Но в моем регионе неделя начинается в понедельник, у меня должно быть 28 на 16.07.2017.
Значение NLS_TERRITORY моей БД - «Франция».
Я пробовал несколько вещей, но ничего не помогло.
Любые идеи?
Спасибо


Причина в формате WW, где документация говорит:
WW
Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.
К счастью, в ISO-8601 первый день недели тоже понедельник, поэтому вы можете использовать
SELECT forecastDate, to_char(to_date(forecastDate),'IW') AS WEEK_NUMBER
FROM ACT_FORECAST
IW
Calendar week of year (1-52 or 1-53), as defined by the ISO 8601 standard.
A calendar week starts on Monday.
The first calendar week of the year includes January 4.
The first calendar week of the year may include December 29, 30 and 31.
The last calendar week of the year may include January 1, 2, and 3.
И, кстати, вы должны изменить тип данных столбца forecastDate на DATE или TIMESTAMP.
Нашел за несколько секунд до того, как опубликовал свой ответ;) Спасибо за помощь
Вы можете найти свой ответ здесь: https://stackoverflow.com/questions/48256816/oracle-change-s tart-day-of-week-tue sday