我正在使用 pyODBC 连接到 SQL Server 2005 express 数据库。我在 SQLServer express 中创建了一个存储过程,它采用 2 个字符串参数,例如,stored_proc(inpu1, input2) 这些参数的类型是日期时间。我已经使用管理工作室测试了存储过程,它确实返回了适当的结果。但是,当我尝试从 python 调用存储过程(我正在使用 Eclipse)时,我得到了错误。
pyodbc.DataError: ('22018', '[22018] [Microsoft][SQL Native Client]强制转换规范 (0) (SQLExecDirectW) 的字符值无效')2/9/2011 12:00:03 2/9/2011 12:20:03
我调用的函数如下:
def GetAlarmFrequencyTime(tstart,tend):
print tstart, tend
arguments=(tstart,tend)
local_cursor=conn.cursor()
local_cursor.execute("{call dbo.GetAlarmEventHistoryFrequency_TimeRange(tstart,tend)}")
resultset_rows=local_cursor.fetchall()
print "There are" , len(resultset_rows), "records"
for single_row in resultset_rows:
print "|" ,single_row[0], "|" ,single_row[1],"|"
local_cursor.close()
造成问题的线路是
local_cursor.execute("{call dbo.GetAlarmEventHistoryFrequency_TimeRange(tstart,tend)}")
任何人都可以帮助我了解如何将多个参数传递给使用 pyODBC 调用的存储过程。我是否需要转换 tstart,并首先倾向于日期时间格式,如果需要如何?我已经验证了strptime,但即使这样也没有成功,尽管我可能用错了