Python MySQLdb 在一行中多次使用 %S

Python MySQLdb using %S multiple times in one line

    Date = self.Date.selectedDate()
    Date = QDate.toPyDate(Date)

    db = MySQLdb.connect(host="localhost", user="root", passwd="Benjamin217", db="Auski")
    c = db.cursor()

    vins = "SELECT Sum(ChildrenNum) FROM OrderDetails WHERE CheckInDate <= '%s' AND CheckOutDate > '%s'"

    vins2 = "SELECT Sum(AdultNum) FROM OrderDetails WHERE CheckInDate <= '%s' AND CheckOutDate > '%s'"

    c.execute(vins, [Date], [Date])
    ChildrenNum = c.fetchone()[0]
    c.execute(vins2, [Date], [Date])
    AdultNum = c.fetchone()[0]
    print(ChildrenNum + AdultNum)
    c.close()
    db.close()

给出错误:

c.execute(vins, [Date], [Date])

TypeError: execute() 接受 2 到 3 个位置参数,但给出了 4 个

我非常想 select 我输入的日期介于两者之间的所有条目。我想知道是否有人有更简洁的方法来执行此操作,并且效果更好。因为我还没有找到解决这个问题的方法。

您将值作为单独的单项列表传递,而不是作为单个列表传递。这会起作用:

c.execute(vins, [Date, Date])