【发布时间】:2015-02-21 15:23:15
【问题描述】:
我有一个包含这一行的存储过程:
EXECUTE FORMAT('SELECT * FROM stores.paint WHERE created >= %s... 其中 %s 由参数填充:dt TIMESTAMP。
我从 python 控制台调用它:
conn = psycopg2.connect(host=host, database=db, user=user, password=pass)
r = conn.cursor()
r.callproc('procedure_name', [datetime.datetime.now()])
由于日期时间/时间戳中的空格,我收到错误:
psycopg2.ProgrammingError: syntax error at or near "15"
LINE 1: ...* FROM stores.paint WHERE created >= 2015-02-21 15:20:40.2...
^
我尝试在存储过程中使用单引号。这导致它在查询字符串中使用文字 %s。
那么,如何将参数传递给其中有空格的存储过程,以便查询真正起作用?
【问题讨论】:
标签: python postgresql stored-procedures psycopg2