我有一个python代码(在Jupiter Notebook上),该代码运行几个SQL查询并通过插入给定星期的数据来更新Vertica中的现有表。 假设,每个星期一我都运行上一周的数据,而每次我手动输入它时,例如:
first_date = "'2019-04-15'"
last_date = "'2019-04-21'"
有什么办法可以自动完成吗?据我了解,我可以使用cron使文件以给定的频率运行,但是每次它将运行相同的窗口日期...您对如何完成操作有任何想法吗?谢谢!
答案 0 :(得分:1)
如果您始终在星期一运行它,则可以使用以下脚本:
import pandas as pd
startdate = (pd.to_datetime('today') + pd.DateOffset(days=-7)).strftime("%Y-%m-%d")
enddate = pd.to_datetime('today').strftime("%Y-%m-%d")
print('from: ', startdate, ' to: ', enddate)
结果:
from: 2019-04-15 to: 2019-04-22
但是,如果您错过了星期一的时间表,而现在已经是星期四,那么您仍然可以使用以下脚本获取上周的星期一:
import datetime
today = datetime.date.today()
startdate = today - datetime.timedelta(days=today.weekday(), weeks=1)
enddate = today - datetime.timedelta(days=today.weekday())
print('from: ', startdate, ' to: ', enddate)
结果:
from: 2019-04-15 to: 2019-04-22