我试图在将一周的开始时间设置为星期日之后获得一年中的星期。
这是必需的,因此我可以在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]
有帮助吗?
答案 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'