使用Cronjob更改数据窗口(在MAC上)

时间:2019-04-25 13:56:10

标签: python sql cron jupyter-notebook vertica

我有一个python代码(在Jupiter Notebook上),该代码运行几个SQL查询并通过插入给定星期的数据来更新Vertica中的现有表。 假设,每个星期一我都运行上一周的数据,而每次我手动输入它时,例如:

first_date = "'2019-04-15'"
last_date =  "'2019-04-21'"

有什么办法可以自动完成吗?据我了解,我可以使用cron使文件以给定的频率运行,但是每次它将运行相同的窗口日期...您对如何完成操作有任何想法吗?谢谢!

1 个答案:

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