我正在尝试将变量传递到SOQL语句中,我正在使用simple_salesforce库。我只需要在机会的CreateDate比昨天多的时候获取数据,昨天的日期保存在last_run_day
变量中。下面是我的代码:
yesterday = date.today() + timedelta(days=-1)
last_run_date = yesterday.strftime("%Y-%m-%d"+"T"+"%H:%M:%S"+"Z")
sf_data = sf.query_all("SELECT ID, Name FROM Opportunity where probability > 0 AND CreatedDate > '%s' AND AdPoint_Id__c <> NULL ORDER BY AdPoint_Id__c" % last_run_date)
print(sf_data)
给我一个错误:字段'CreatedDate'必须为dateTime类型,且不能用引号引起来“,'errorCode':'INVALID_FIELD'
[strftime
方法实际上返回一个字符串。要找出对象类型,可以使用type
方法
您可以在程序中使用此行代码来检查类型print(type(last_run_date))
,它将返回<class 'str'>
,这表示其为字符串对象。
因此,在查询中无法将字符串分配给日期时间。
您可以尝试使用下面的代码
import datetime
yesterday = datetime.datetime.now() + datetime.timedelta(days=-1)
sf_data = sf.query_all("SELECT ID, Name FROM Opportunity where probability > 0 AND CreatedDate > '%s' AND AdPoint_Id__c <> NULL ORDER BY AdPoint_Id__c" % yesterday)
print(sf_data)
昨天= date.today()+ timedelta(天= -1)
sf_data = sf.query_all(“选择ID,来自机会的名称,其中概率> 0 AND CreatedDate> YESTERDAY AND AdPoint_Id__c <> NULL ORDER BY AdPoint_Id__c”]
print(sf_data)