У меня есть запрос, который фильтрует на основе строкового поля, содержащего номера телефонов с нулем в начале. В моем запросе %s
используется в качестве заполнителя с переменной, переданной запросу во время выполнения следующим образом:
rows = (('01234567891',), ('01234567892',), ('01234567893',))
dbQuery2 = """
SELECT DATE_FORMAT(DATE(ch.start), '%d/%m/%Y') As CallDate,
ch.did AS InboundNo,
COUNT(*) AS DayTotal
FROM call_history ch LEFT JOIN
ast_queue_log aql
ON aql.event = 'ENTERQUEUE' AND aql.callid = ch.callid
WHERE ch.did = %s AND
ch.start BETWEEN DATE_FORMAT(NOW(), '%Y-%m-01') AND NOW()
GROUP BY ch.did, DATE(ch.start)
ORDER BY ch.did, DATE(ch.start)
;
"""
for row in rows:
cur2.execute(dbQuery2, row)
subrows = cur.fetchall()
Поле DB, вызывающее проблему:
`did` varchar(32) NOT NULL DEFAULT '',`
ошибка:
TypeError: %d format: a number is required, not str