在 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")
我有一个会自动 运行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")