将开始日期设置为星期日后获取一年中的星期

时间:2019-07-10 13:09:34

标签: python-3.x date datetime teradata

我试图在将一周的开始时间设置为星期日之后获得一年中的星期。

这是必需的,因此我可以在python脚本中镜像Teradata逻辑。在Teradata,每周从星期日开始。因此,以下查询返回-

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

但是当我在python中运行它时,它返回22

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 个答案:

答案 0 :(得分:1)

您可能想要strftime("%U")

  

一年中的第几周(星期日为一周的第一天)   零填充十进制数。新年第一天之前的所有天数   星期日被认为是在第0周。

要匹配Python的isocalendar(),您也可以在Teradata中切换到ISO:

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

顺便说一句,没有理由写to_date('2019-06-01'),只需使用日期文字即可:DATE '2019-06-01'