Redshift-将时间戳记作为变量传递时的psycopg2.DataError

时间:2018-10-11 07:48:18

标签: python-3.x variables amazon-redshift

我有一个Python脚本,该脚本接受3个参数作为Python函数的一部分。下面给出的是函数:

def func(name,start_date,end_date):
    db_details
    db_cursor = con.cursor()   
    db_cursor.execute("""select '%s' as name,count (*)
from datamart 
where sale_date between '%s' and '%s'"""), 
(name,start_date,end_date)

尝试执行以上操作时出现以下错误:

psycopg2.DataError
psycopg2.DataError: invalid input syntax for type timestamp: "%s"

任何人都可以就上述代码中我要去哪里的问题提出建议。我正在连接到Redshift数据库。

1 个答案:

答案 0 :(得分:0)

您可以通过这种方式进行操作,因为在格式化字符串时,它不会自己添加单引号。

"""select '{arg_1}' as name,count (*) from datamart  where sale_date between '{date_1}' and '{date_2}'""".format(arg1=arg1,date_1=date_1_str,date_2=date_2_str)