Я пытаюсь получить номер недели ISO от даты в SQLite.Когда я примеряю несколько дат, это дает неправильный номер недели.
Например:
SELECT STRFTIME('%W', '2018-12-31')
возвращает 53.
Однако было решение, в котором предлагалось использовать следующий код:
SELECT strftime('%Y', '2018-12-31 00:00:00') || '-' || ( (strftime('%j', date('2018-12-31 00:00:00', '-3 days', 'weekday 4')) - 1) / 7 + 1) as week
который возвращает 2018-1
, но ожидаемый результат равен 2019-1
, потому что в соответствии с номером недели ISO * 2018-12-31 приходится на первую неделю 2019 года.
Как правильно получить правильную неделю ISOномер в SQLite?
* Номер недели в соответствии со стандартом ISO-8601, недели, начинающиеся с понедельника.Первая неделя года - это неделя, в которой содержится первый четверг этого года (= «Первая четырехдневная неделя»)