Получить неделю года после установки дня начала как воскресенье - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь получить неделю года после установки начала недели как воскресенье.

Это необходимо, чтобы я мог отразить логику Teradata в своем скрипте python.В Teradata неделя начинается с воскресенья.Таким образом, запрос ниже возвращает -

select WEEKNUMBER_OF_YEAR(to_date('2019-06-01'))
21

Но когда я запускаю его в python, он возвращает 22 * ​​1006 *

import datetime
datetime.date(2019, 6, 1).isocalendar()[1]

Я пытался установить воскресенье в качестве первого дня недели, но тот же результат

import calendar
import datetime
calendar.setfirstweekday(calendar.SUNDAY)
datetime.date(2019, 6, 1).isocalendar()[1]

Любая помощь?

1 Ответ

1 голос
/ 10 июля 2019

Вы, вероятно, хотите strftime("%U")

Номер недели в году (воскресенье как первый день недели) как дополненное нулями десятичное число. Все дни в новом году, предшествующем первому Воскресенье считается на неделе 0.

Чтобы соответствовать Python isocalendar(), вы также можете переключиться на ISO в Teradata:

WEEKNUMBER_OF_YEAR(to_date('2019-06-01'), 'ISO')

Кстати, нет смысла писать to_date('2019-06-01'), просто используйте вместо этого литерал даты: DATE '2019-06-01'

...