在内联SQL查询Python Flask中使用DATE_FORMAT的问题

时间:2017-06-19 05:54:13

标签: python mysql sql date flask

我的查询如下所示在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烧瓶中运行时得到以下错误

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

虽然查询中的%是格式化而不是传递参数,但它正在寻找更多的参数。我确实尝试寻找原因,但找不到一个好的,我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

使用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))