如何解决SyntaxError:Linux上prestodb中的续行字符后出现意外字符?

时间:2019-07-01 05:54:47

标签: linux presto

我需要从id_1以E开头的数据库中获取数据。 在为上述constarint添加Where子句之前,代码运行良好。

sql = "select inserted_at, id1, id2, id3 from data where inserted_at<=" + str(start_date_time) + " and " \
                       "inserted_at>=" + str(end_date_time) + " " \ 
                       "and" "where id1 like %E%"

我收到此错误。

"inserted_at>=" + str(end_date_time) + " " \ 
                                                ^
SyntaxError: unexpected character after line continuation character

1 个答案:

答案 0 :(得分:1)

实际问题是由在查询中放置转义的日期/日期时间文字引起的。您可以通过在start_date_time周围加上单引号来解决此紧迫的问题,但更好的长期解决方法是使用准备好的语句:

sql = "select inserted_at, id1, id2, id3 from data where inserted_at between ? and ? and id1 like '%E%'"
cur = conn.cursor()
cur.execute(sql, (start_date_time, end_date_time,))