Python mysql 参数化date_add查询失败("您的 SQL 语法有错误")



我有一个简单的SQL查询,它可以从mysql命令行中正常工作:

从他们的id=0053和日期和时间>=的时间中选择日期和时间2022-08-24和日期和时间<DATE_ADD("2022-08-24",间隔7天(;

如果我尝试通过以下任一操作以程序方式进行此操作:

params = (their_id,date,date," INTERVAL 7 DAY")
query = "select dateandtime from times where their_id=%s and dateandtime>= %s and dateandtime<=DATE_ADD(%s,%s) ";
cursor.execute(query,(params))

params = (their_id,date,"""+date+"""," INTERVAL 7 DAY")
query = "select dateandtime from times where their_id=%s and dateandtime>= %s and dateandtime<=DATE_ADD(%s,%s) ";
cursor.execute(query,(params))

我得到:mysql.connector.errors.ProgrammingError:1064(42000(:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解在第1行"INTERVAL 7 DAY"附近使用的正确语法

显而易见的问题是,有什么方法可以参数化这个查询吗?然而,第二,为了在未来帮助解决类似的问题,一旦参数化查询被解析,是否有任何方法可以将查询视为MYSQL所解释的查询?

如有任何帮助,我们将不胜感激!

根据Panagiotis Kanavos的回答,使用以下形式的查询:

select dateandtime from times where dateandtime BETWEEN %s and %s

并且用python日期时间而不是字符串提供日期和时间参数解决了这个问题。

相关内容

最新更新