我在一张有日期字段的表中有记录。
我想查询表格,以便返回的记录只是给定周的星期日。
我怎样才能使用python' datetime
库实现这一目标?感谢。
答案 0 :(得分:12)
获取一周的开始日期:
datetime.today() - datetime.timedelta(days=datetime.today().isoweekday() % 7)
答案 1 :(得分:9)
感谢@PavSidhu和该答案的编辑。进一步建立答案:
如果一周的开始时间是星期日
import datetime
datetime.datetime.today() - datetime.timedelta(days=datetime.datetime.today().isoweekday() % 7)
如果一周的开始时间是星期一
import datetime
datetime.datetime.today() - datetime.timedelta(days=datetime.datetime.today().weekday() % 7)
如果要计算未来日期的一周开始时间
import datetime
from dateutil.relativedelta import relativedelta
# 5 days ahead of today
future_date = datetime.datetime.today() + relativedelta(days=5)
# If Start of Week is Monday
print(future_date - datetime.timedelta(days=future_date.weekday() % 7))
# If start of week is Sunday
print(future_date - datetime.timedelta(days=future_date.isoweekday() % 7))
差异:当一周的开始时间是星期一时,我们使用的是weekday()
而不是isoweekday()
isoweekday()
-星期一为1,星期日为7 weekday()
-星期一为0,星期日为6