1

我正在尝试使用 PyMySQL 运行以下查询

cur.execute("SELECT %s as label, UNIX_TIMESTAMP(CONVERT(DATE_FORMAT(date_added, '%%Y-%%m-%%d-%%H:%%i:00'),DATETIME)) as time, %s  as metric FROM %s WHERE id >= %d GROUP BY label, time", (label, metric, table, min_id,))

我收到以下错误:

TypeError: %d format: a number is required, not str

label、metric、table 和 min_id 分别是 string、string、string 和 int。

我没有正确地转义 % 吗?不太清楚,已经尝试了一些东西。

谢谢!

4

1 回答 1

2

... id >= %d ...应该是... id >= %s ...

在应用于格式字符串之前,所有参数都被转义为字符串。

于 2013-06-27T21:17:28.740 回答