ОК, так что мне удалось ответить на мой собственный вопрос. Для тех, кому может понадобиться подобное решение, это то, что я придумал. Обратите внимание, у меня нет ИТ-опыта, и мой SQL самоучка.
Общий процесс
- Получите четверг недели, к которой относится и дата.
- Получите 4 января года того четверга.
- Получите четверг недели, к которой относится и дата 4 января.
- Вычтите Шаг 2 с Шагом 3, разделите на 7 и сложите 1.
Переведено на SQLite ....
SELECT
date,
CASE CAST (strftime('%w', wknumjanfourth) AS INTEGER)
WHEN 0 THEN ((JULIANDAY(datesThur) - JULIANDAY(strftime("%s", wknumjanfourth) - 259200, 'unixepoch')) / 7) + 1
ELSE ((JULIANDAY(datesThur) - JULIANDAY(DATE(strftime("%s", wknumjanfourth) - (86400 * (strftime('%w', wknumjanfourth) - 1)), 'unixepoch'), '+3 day')) / 7) + 1
END AS weeknum
FROM
(
SELECT
date,
datesThur,
DATE(datesThur,'start of year','+3 day') AS wknumjanfourth
FROM
(SELECT
date,
CASE CAST (strftime('%w', date) AS INTEGER)
WHEN 0 THEN DATE(strftime("%s", date) - 259200, 'unixepoch')
ELSE DATE(DATE(strftime("%s", date) - (86400 * (strftime('%w', date) - 1)), 'unixepoch'), '+3 day')
END AS datesThur
FROM TEST
))
Если кто-нибудь может улучшить этот SQL, я был бы признателен за отзыв.