在 sql 查询中传递日期时间,同时使用批量 api simple_salesforce Python 获取数据

pass datetime in sql query while fetching the data with bulk api simple_salesforce Python

我有一个会自动 运行ning 的代码,我需要保存最后一个 运行 的日期时间,以便下次我的代码 运行s 它只抓取晚于上次 运行 次更新的数据。我正在使用带有 BULK API 调用的 simple_salesforce 库。这是我的代码:

# open json file and retrieve last_run_time
with open('last_run_time.json', 'r') as openfile: 
    last_run_time = json.load(openfile)
print(last_run_time)
# '2020-05-14T14:48:38Z'

# sql query 
sf_data = sf.bulk.Opportunity.query("SELECT ID FROM Opportunity where CreatedDate > last_run_time AND AdPoint_Id__c <> NULL")

today_date = datetime.now()
today_date_time = today_date.strftime("%Y-%m-%d"+"T"+"%H:%M:%S"+"Z")

# save datetime in json file, overwriting the old value
with open("last_run_time.json", "w") as outfile: 
    json.dump(today_date_time, outfile) 

我的查询出现错误 IndexError: list index out of range。如何在 sql 语句中传递 last_run_time 变量?

您需要从查询字符串的其余部分中分离出 last_run_time 变量。在当前形式中,文字字符串 'last_run_time' 包含在您的查询中。

修改后的查询将是:

sf_data = sf.bulk.Opportunity.query("SELECT ID FROM Opportunity where CreatedDate > " + last_run_time + " AND AdPoint_Id__c <> NULL")