我的查询在 python flask 中如下所示
result = app._engine.execute ("select bookingid, DATE_FORMAT(bookingdate, '%Y-%m-%d'), DATE_FORMAT(pickupdate, '%Y-%m-%d'), consigneeid, fromcity from booking where consignerid = '{0}'".format(loginid))
当我在 MySQL Workbench 中运行并以 yyyy-mm-dd 格式返回日期时,此查询有效,但是当我在 python flask 中运行时,出现以下错误
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQLdb/cursors.py", line 187, in execute
query = query % tuple([db.literal(item) for item in args])TypeError: not enough arguments for format string
尽管查询中的 % 用于格式化而非传递参数,但它正在寻找更多参数。我确实尝试寻找原因但找不到好的原因,我在这里做错了什么?
最佳答案
当使用 MySQL Connector for Python 时,您应该转义文字 %,这是因为 Python 使用百分号 (%) 进行字符串格式化。
试试这个:
result = app._engine.execute ("select bookingid, DATE_FORMAT(bookingdate, '%%Y-%%m-%%d'), DATE_FORMAT(pickupdate, '%%Y-%%m-%%d'), consigneeid, fromcity from booking where consignerid = '{0}'".format(loginid))
关于python - 在内联 SQL 查询 Python Flask 中使用 DATE_FORMAT 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44623134/