Первый день недели установлен на воскресенье, а не на понедельник в Oracle

У меня такой запрос:

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 моей БД - «Франция».

Я пробовал несколько вещей, но ничего не помогло.

Любые идеи?

Спасибо

Вы можете найти свой ответ здесь: https://stackoverflow.com/questions/48256816/oracle-change-s‌ tart-day-of-week-tue‌ sday

Sjoerd 13.07.2018 15:00
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
1
2 581
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Причина в формате 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.

Нашел за несколько секунд до того, как опубликовал свой ответ;) Спасибо за помощь

AnthonyDa 13.07.2018 15:34

Другие вопросы по теме