Redshift - psycopg2.DataError при передаче отметки времени в качестве переменной - PullRequest
0 голосов
/ 11 октября 2018

У меня есть скрипт 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 DB.

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете сделать это таким образом, так как он не будет добавлять одиночные кавычки самостоятельно при форматировании строки.

"""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)
...