There is something fishy about your query, it does not look right:
insert into table xyz
(select * from abc where date_time = %s and %s + interval '1 hour')
I would suggest:
insert into xyz (<columns of xyz>)
select <columns of abc>
from abc
where date_time > ?
The query have been edited so it should be:
insert into xyz (<columns of xyz>)
select <columns of abc>
from abc
where date_time > ? and date_time <= ? + interval '1 hour'
Now when you execute your query:
cur.execute(query2,(ts, ts))
The number of parameter markers (?) in the query string should be equal to the number of elements in the tuple .
If you are using %s in your query (not recomended) you can assign values to those variables with:
"""insert into xyz (<columns of xyz>)
select <columns of abc>
from abc
where date_time > %s""" % (value)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…